2010-10-28 48 views
0

我正在通過Forger的win32教程,在兩個IDE上工作:Dev C++和Visual Studio 2008.我嘗試在兩者中複製結果。DevCPP/VS windows應用程序頭問題(noob)

對於this本教程的頁面,我似乎無法編譯在Dev C++(Visual Studio工作正常)。這是一個模態對話框。有問題的代碼是在WndProc

case ID_HELP_ABOUT: 

    int ret = DialogBox(GetModuleHandle(NULL), 
    MAKEINTRESOURCE(IDD_ABOUT),hwnd,AboutDlgProc); //ERROR OCCURS HERE in Dev C++ 

    if(ret==IDOK) { MessageBox(NULL,"Dialog exited with OK","Notice",0); } 
    else { MessageBox(NULL,"Dialog exited with EXIT","Notice",0); } 

break; 

錯誤(S)它拋出是:

Simple3\main.c In function `WndProc': 
Simple3\main.c syntax error before "int" 
Simple3\main.c `ret' undeclared (first use in this function) 

如果我這點之前定義int ret;,彙編,而是一個命令窗口打開隨着常規應用程序

我假設我缺少一個標題。我正在使用的標題是windows.hafxres.h。任何人都可以幫我嗎?提前致謝。

PS - 真正簡單的問題,而我在它 - 在尖括號或引號中聲明標題有什麼區別?例如。 <windows.h>"windows.h"

回答

0

一些編譯器期望在Case語句和break語句之間添加大括號。嘗試使用它。

我認爲它應該這樣工作。 「

除了關於<>和」「用於聲明標題,尖括號表示文件將在IDE中提到的默認包含目錄中搜索。而當您希望在本地項目文件夾以及include文件夾中搜索文件時使用「」。

+0

此解決方案可以正常工作,但不是因爲您的想法。它的工作原理是因爲他在案例塊中聲明瞭一個變量。如果跳過這個大小寫塊,變量將不會被創建,但它應該仍然存在,因爲它在相同的範圍內。這是一個問題。在它周圍放置花括號限制了範圍,這就是它工作的原因。 – 2010-10-28 00:42:46

+0

啊,所以這是一個基本的C++問題,而不是編譯器問題。將檢查並看到(24小時...)。謝謝! – Ben 2010-10-28 01:00:17