Win32 コードを Microsoft ツールチェーンから MinGW に移植しようとすると、ほとんどのコードは正常にコンパイルされますが、例外はほとんどありません。MinGW に欠けていると思われる特定の API の 1 つはSList API (InitializeSListHead、InterlockedPushEntrySList を含む) です。ソースをコンパイルすると、これらの関数が定義されていないというエラーが表示されます。この API を MinGW で使用できるようにするにはどうすればよいですか? 更新できるWin32 SDKなどはありますか?
質問する
799 次
3 に答える
4
現在の MinGW (GCC 4.6.2 に基づく) には既に SList API が含まれていますが、プリプロセッサ値 _WIN32_WINNT =0x0501 以上を定義することによって、それをサポートする Windows ターゲット用にコンパイルしていることを示す必要があります(これは、SP1 を適用した Windows Server 2003、Windows XP を示します)。 SP2 を使用)。
于 2012-05-22T14:06:05.997 に答える
0
QueryDepthSList();
4.7.1ヘッダーにありません。他の機能はそこにあります。
于 2012-11-01T09:25:00.757 に答える
0
http://equation.comにアクセスして、最新の gcc 4.8+を含む完全な MinGW ビルドをダウンロードします。
winbase.h から (式の MinGW/include 内):
#if defined(_SLIST_HEADER_) && !defined(_NTOSP_)
WINBASEAPI VOID WINAPI InitializeSListHead(PSLIST_HEADER ListHead);
WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER ListHead);
WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER ListHead,PSLIST_ENTRY ListEntry);
WINBASEAPI PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER ListHead);
WINBASEAPI USHORT WINAPI QueryDepthSList(PSLIST_HEADER ListHead);
#endif /* _SLIST_HEADER_ && !_NTOSP_ */
于 2012-05-22T11:12:37.797 に答える