簡體   English   中英

無符號WINAPI函數的正確函數指針是什么?

[英]What is the correct function pointer for an unsigned WINAPI function?

我有一個這樣聲明的函數:

unsigned WINAPI searchSTR(void *j);

我需要一個指向此函數的指針。 我的想法是:

unsigned (*pointerF) (void*);
pointerF = &searchSTR;

但是有一個錯誤:

"1 error C2440: '=' : cannot convert from 'unsigned int (__stdcall *)(void *)'
                                       to 'unsigned int (__cdecl *)(void *)' ".

我嘗試了其他sintax,但似乎沒有正確的選擇,他不喜歡WINAPI這個詞。

您能建議我正確的語法嗎? 也許很容易,但是我被封鎖了! 謝謝大家

WINAPI宏擴展為__stdcall ,這是與默認__cdecl不同的調用約定。 您需要使用調用約定來標記函數指針以使用:

unsigned (WINAPI *pointerF) (void*)
 auto pointerF = &searchSTR;

停止編寫1990年的代碼。 編譯器已經知道正確的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM