2012-09-12 45 views
0

好吧,我創建了一個運行良好的C++ Win32程序。然後我想使用一個自定義圖標,所以我創建了一個「resource.h」文件和一個「resource.rc」文件,並在我的C++源文件中創建了它們。但是在編譯我收到以下錯誤3行:使用資源文件進行C++編譯時出錯

預期不合格-ID之前的數字常量

我在做什麼錯?我忘記了什麼嗎?

我RESOURCE.H文件:

#define IDI_MYICON 201 

我RESOURCE.RC文件:

#include "resource.h" 

IDI_MYICON ICON "star.ico" 

最後我的C++ Win32文件的前三行(那些有問題):

#include <windows.h> 
#include "resource.h" 
#include "resource.rc" 
+1

嘗試不包括你的rc文件。 –

回答

5

您不應該將.rc文件包含到您的源代碼中,只是.h文件。您應該使用開發環境的資源編譯器將.rc文件單獨編譯到.res文件中,然後將.res文件鏈接到最終的可執行文件中。

+0

我該如何「將.res文件鏈接到最終的可執行文件」? – Nigh7Sh4de

+0

細節取決於您的特定構建環境,但通常情況下,您將以與鏈接.obj和.lib文件類似的方式鏈接它。例如,如果您使用的是VC++或C++ Builder,則可以將.rc文件本身添加到C++項目中,並讓IDE爲您編譯並鏈接它。 –

+0

我正在編譯MinGW的命令行,這就是爲什麼我從來沒有聽說過編譯或鏈接,但我找到了一個很好的教程,所以感謝雷米讓我在正確的軌道:) – Nigh7Sh4de

3

您不包括.RC文件到C++文件中。你用RC.EXE(資源編譯器)編譯它們。這會生成一個.RES文件,該文件與您的其他.OBJ文件一起提供給鏈接器。