5

Comctl32.lib を GCC (MinGW) を使用して自分のプログラムにリンクすることができません。

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

あなたが提供できる助けや情報をありがとう。私はこれに長すぎて、答えを思いつくことができません。

4

1 に答える 1

3

David Hのおかげで問題を解決しました。定義する必要がありました

#define _WIN32_IE 0x0900

commctrl.h がデフォルトで 0x0500 を定義しているという印象を受けました (私の関数には 0x0300 が必要です) が、そうではなかったようです。

プロジェクトで _WIN32_IE マクロを定義しない場合、自動的に 0x0500 として定義されます。- MSDN ソース

于 2013-04-23T15:29:12.573 に答える