[英]C/C++ casting void* to int ( * () ) (int,…);
如何將void*
為int ( * () ) (int,...)
?
void*
來自dlsym
。 此代碼未編譯:
typedef int ( *PSYS () ) (int,...);
PSYS getf = (PSYS) dlsym(lib, "function" );
如果符號是函數指針,則typedef可能是錯誤的。 應該:
typedef int (*PSYS)(int, ...);
PSYS是函數的類型,而不是函數的指針。 你要
typedef int ( *PSYS () ) (int,...);
PSYS* getf = (PSYS*) dlsym(lib, "function" );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.