1

我使用 Code::Blocks 运行以下命令

#include <iostream>

using namespace std;

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

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

现在,这就是我要问的,这是我能做到的。

当我运行它时,它返回值 1993075819 而不是 0。此外,程序没有运行,它所做的只是向我显示返回的值。

有两点值得注意:

  1. 每次我尝试执行此操作时都会弹出 AVG,并将其报告为特洛伊木马

  2. 如果我没有运行代码

    cout << "Hello, world!!!!";
    

它按应有的方式返回 0,并且 AVG 不会弹出

我怎样才能解决这个问题?(代码::块 12.11)

4

2 回答 2

0

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

于 2013-04-23T22:05:51.457 回答
0

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

您可以向 AVG 报告误报。病毒供应商实际上非常擅长修复用户报告的误报。当我曾经在一家产生大量误报的公司工作时(与安全相关的代码会做一些引发误报的古怪事情),周转时间通常约为一周。

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

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

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

于 2013-04-23T22:02:15.440 回答