2013-04-23 128 views
4

我無法獲得Comctl32.lib與我的程序使用GCC(MinGW)鏈接。GCC Win32 API鏈接問題與ComCtl32

GCC輸入:

gcc -o program.exe main.c images.o -lgdi32 -lcomctl32 -mwindows 

GCC輸出

main.c: In function 'WinMain': 
main.c:120:2: error: unknown type name 'INITCOMMONCONTROLSEX' 
main.c:124:9: error: request for member 'dwICC' in something not a structure or union 

相關的代碼在main.c中

#define _WIN32_WINNT _WIN32_WINNT_WIN7 
#include <windows.h> 
#include <commctrl.h> 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmd) 
{ 
    Line 120: INITCOMMONCONTROLSEX icex; 
    Line 124: icex.dwICC = ICC_LISTVIEW_CLASSES; 
    InitCommonControlsEx(&icex); 
} 

感謝您的幫助,或者您可以提供的信息。我一直在這太久,只是不能提出一個答案。

+2

你不需要定義是這樣的:http://msdn.microsoft.com/en-us/library/6sehtctf.aspx – 2013-04-23 15:23:48

+1

我不這麼認爲。我已將其更改爲0x0601並添加了WINVER。這只是一個鏈接器問題,我相信,與定義無關。 – David 2013-04-23 15:26:32

+0

解決,這讓我找出問題。 – David 2013-04-23 15:29:44

回答

2

我已經解決了這個問題感謝David H.我不得不定義

#define _WIN32_IE 0x0900 

我的印象是,commctrl.h被定義在0x0500默認(0x0300需要我的功能)之下,但它看起來不是。

如果您沒有在您的項目中定義_WIN32_IE宏,它會自動定義爲0x0500。 - MSDN Source