c 動態庫呼叫注意事項

2021-10-06 19:09:22 字數 739 閱讀 7700

#ifdef _msc_ver

#include

#include

#define    get_function_address(x, y)    getprocaddress(x, y)

#define    load_dynamic_library(x)        loadlibrary(x)

#define    free_dynamic_library(x)        freelibrary(x)

#define    get_error_message()            getlasterror()

#else

#include

#include

#define    get_function_address(x, y)    dlsym(x, y)

#define    load_dynamic_library(x)        dlopen(x, rtld_lazy|rtld_global)

#define    free_dynamic_library(x)        dlclose(x)

#define    get_error_message()            dlerror()

#endif

動態庫介面封裝的時候,不要使用stl之類的引數型別,作為引數傳遞。目前發現在arm64下是可行的,但是在windows下會崩潰,原因是double free了,感覺是淺拷貝之類的問題。

動態鏈結庫注意事項

建立 1.新建vc wndows桌面 動態鏈結庫專案 2.寫標頭檔案 注意建構函式和析構函式都要寫在標頭檔案中 ifndef 頭檔名 define 頭檔名 endif 頭檔名 寫原始檔 3.原始檔 新增新項 模組定義檔案 def library dll專案名 exports 函式名1 1 函式名2 ...

C 注意事項

include using namespace std class superclass virtual superclass virtual void dosomething const protected intitsage class subclass public superclass vo...

c 注意事項

const引用.const引用是指向const物件的引用 const int ival 1024 const int refval ival 正確,引用和引用的物件都是const int ref2 ival 這是錯誤的,因為引用不是const int i 42 const int r 42 這是正確...