先是出錯代碼
- void (*FUNC)(int a);
- FUNC = dlsym(handle, "FUNC");
這個錯誤是出現在C++下面的,因為dlsym返回的是void*,但是C++又不允許隱形轉換通用指針,所以就報這個錯。
解決辦法就是寫一個typedef,然後做一次顯示類型轉換
- typedef (*fptr_FUNC)(int a);
- fptr_FUNC FUNC = NULL;
- FUNC = (fptr_FUNC)dlsym(handle, "FUNC");
問題解決
沒有留言:
張貼留言