2013-04-23 67 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或配置它不要抱怨你的可執行文件。出於某種原因,啓發式方法會錯誤地解釋可執行文件中的某種位模式,就像它是特洛伊木馬,並在啓動之前將其殺死。您得到的結果代碼來自攔截的程序調用(即防病毒程序),而不是來自您的程序,甚至沒有運行。