我正在使用-Wbad-function-cast
標誌編譯gcc上的程序。海合會顯示以下警告:如何將壞的HINSTANCE轉換爲int?
cast does not match function type
這是警告的線:int ret = (int)
FindExecutable(file, NULL, result)
的問題是:有可能將其刪除?也許投射到另一個Windows數據類型,但我把它作爲一個整數處理。任何幫助非常感謝。提前致謝。
我正在使用-Wbad-function-cast
標誌編譯gcc上的程序。海合會顯示以下警告:如何將壞的HINSTANCE轉換爲int?
cast does not match function type
這是警告的線:int ret = (int)
FindExecutable(file, NULL, result)
的問題是:有可能將其刪除?也許投射到另一個Windows數據類型,但我把它作爲一個整數處理。任何幫助非常感謝。提前致謝。
你看過什麼HINSTANCE實際上是? (我猜它是一個指針,而不是一個int)。所以,你可能有更好的運氣鑄造一個void *
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx
手柄可實例。這是模塊在內存中的基地址。今天HMODULE和HINSTANCE是一樣的,但在16位Windows中代表了不同的東西。 此類型在WinDef.h中聲明如下: typedef HANDLE HINSTANCE;
手柄
對象的句柄。 這種類型在WinNT.h中聲明如下: typedef PVOID HANDLE;
指向任何類型的指針。 這種類型在WinNT.h中聲明如下: typedef void * PVOID;
@Jack,所以你可以(也可能應該)刪除這個cast並且讓ret一個void *。 – 2012-07-19 18:14:11
爲什麼你需要投它呢?寫這樣的代碼:'HINSTANCE ret = FindExecutable(...);'或者甚至'auto ret = FindExecutable(...);' – 2012-07-20 12:57:12