Code :: Blocks - 奇怪的返回码

时间:2013-04-23 21:56:13

标签: c++ return-value codeblocks

我使用Code :: Blocks

运行以下命令
#include <iostream>

using namespace std;

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

现在,昨晚有一些关于我如何知道我的回报价值的问题。我不知道这是不是我的版本,但是在我的版本上运行程序后,它会显示“Process return v(0xv)execution time ...”等等,其中“v”是返回值。

现在,这就是我要问的问题,这一点就像我能做到的那样清晰。

当我运行它时,它返回值1993075819而不是0.此外,程序不运行,它只是显示返回值。

值得注意的两件事:

  1. 每当我尝试这样做时,AVG就会弹出,并将其报告为特洛伊木马

  2. 如果我在没有

    的情况下运行代码
    cout << "Hello, world!!!!";
    
  3. 它会像它应该返回0并且AVG不会弹出

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

2 个答案:

答案 0 :(得分:0)

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

你可以report the false positive to AVG。病毒供应商实际上非常擅长修复用户报告的误报。当我曾经在一家产生大量误报的公司工作时(安全相关的代码做了引发误报的时髦事物),周转时间通常是一周左右。

同时,如果您使用不同的编译器开关(例如,如果当前未优化编译器,则优化编译,反之亦然),您生成的代码很可能不会触发误报。

您还可以将已编译的程序添加到AVG安全列表中:

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

答案 1 :(得分:0)

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