5

我无法使用 GCC (MinGW) 让 Comctl32.lib 与我的程序链接。

海合会输入:

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);
}

感谢您提供的任何帮助或信息。我已经在这太久了,只是无法想出一个答案。

4

1 回答 1

3

感谢 David H,我已经解决了这个问题。我必须定义

#define _WIN32_IE 0x0900

我的印象是 commctrl.h 默认定义了 0x0500(我的函数需要 0x0300),但似乎不是。

如果您的项目中没有定义 _WIN32_IE 宏,它会自动定义为 0x0500。- MSDN 来源

于 2013-04-23T15:29:12.573 回答