2
我想從DLL加載特定函數並將其存儲在Boost函數中。這可能嗎?C++將函數從DLL加載到Boost函數中
typedef void (*ProcFunc) (void);
typedef boost::function<void (void)> ProcFuncObj;
ACE_SHLIB_HANDLE file_handle = ACE_OS::dlopen("test.dll", 1);
ProcFunc func = (ProcFunc) ACE_OS::dlsym(file_handle, "func1");
ProcFuncObj fobj = func; //This compiles fine and executes fine
func(); //executes fine
fobj(); //but crashes when called
謝謝, Gokul。
我喜歡你在同一句子中如何使用「執行正常」和「崩潰」;) –
你能確認'func'不是null嗎? –
實際上,我的意思是當它被稱爲fobj()時崩潰,在下一句 – Gokul