动态调用dll,GetProcAddress返回不了地址的问题。
各位大虾,本人测试 自己编写的dll函数,静态调用时没有问题,但如下动态调用时,getprocessaddress 返回null,本人取得的错误吗是127,"can't find the procedure in the dll",
不知道为什么?请各位大虾鼎力相助!
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int ( *test01)(); //定义函数指针。
HINSTANCE hDLL=LoadLibrary("D:\\newdlltest\\Project2.dll");
if(!hDLL)
{
ShowMessage("Can not load DLL");
}
else
{
(void *)test01=GetProcAddress(hDLL,"test");
int echo=GetLastError();
if(test01 == NULL)
{
ShowMessage("the address can't be load");
return ;
}
int a=test01();
}
FreeLibrary(hDLL);
}
创建dll源代码:
extern "C" __declspec(dllexport) int test();
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
int test(){
return 3;
}