2013-04-23 55 views
1

我运行代码:: Blocks的代码::块 - 奇怪的返回码

#include <iostream> 

using namespace std; 

int main() 
{ 
    cout << "Hello, world !!!!!!!"; 
    return 0; 
} 

下列现在,有一些问题,我怎么知道我的返回值昨晚。我不知道它是否是我的版本,但是在我的版本上运行该程序后,它显示“Process v(0xv)execution time ...”等,其中“v”是返回的值。

现在,这就是我所要求的,这点我可以做得很清楚。

当我运行这个,它返回值1993075819而不是0.另外,程序不运行,它所做的只是显示返回的值。

两个值得注意的事情:

  1. AVG弹出每次我试图做到这一点,并将其报告为木马

  2. 如果我没有

    cout << "Hello, world!!!!"; 
    
  3. 运行代码

它像它应该返回0并且AVG不会弹出

我该如何解决这个问题? (Code :: Blocks 12.11)

+1

你有更大的问题。 C++不是你的问题。该程序写入返回0,任何明智的操作系统都会让您访问该返回值并向您显示0.尝试使用干净的计算机,或启动Linux Live CD或使用联机C++编译器。 – 2013-04-23 22:00:17

+0

假设你禁用了AVG,但是在'cout <<“Hello world”离开了,'它也按照它应该运行? – john 2013-04-23 22:01:26

+0

你不是第一个有这个问题的人,http://www.cplusplus.com/forum/beginner/67634/ – john 2013-04-23 22:03:58

回答

0

问题不在于您的代码,而是由于AVG产生的误报。返回码1993075819是因为AVG拦截程序并且不让它运行。

您可以report the false positive to AVG。实际上病毒供应商非常善于修复用户报告的误报。当我过去在一家产生大量误报的公司工作(与安全相关的代码做了引发误报的时髦事件)时,转机通常大约一周。与此同时,如果您使用不同的编译器开关(例如优化编译,如果它当前没有优化,反之亦然),那么您生成的代码不会触发误报。

您还可以在编译程序添加到AVG安全列表:

http://www.ehow.com/how_8192066_add-exceptions-avg.html

+0

现在,我将假装在这里呆一秒钟,并询问如何暂时禁用AVG – user2154113 2013-04-23 22:04:26

+0

@ user2154113:右键单击该图标?应该有上下文菜单。无论如何,这不再是一个编程相关的问题。 – 2013-04-23 22:06:32

+0

比禁用更好...将程序添加到AVG安全列表。我添加了一个链接。 – 2013-04-23 22:06:35

0

禁用AVG或配置它不要抱怨你的可执行文件。出于某种原因,启发式方法会错误地解释可执行文件中的某种位模式,就像它是特洛伊木马,并在启动之前将其杀死。您得到的结果代码来自拦截的程序调用(即防病毒程序),而不是来自您的程序,甚至没有运行。