|
这个程序怎么了?为什么我找不到导入的函数?
client:
#include"stdafx.h"
//extern "C" void printstr(int option);
typedef void (*MYFUNCTION)(int);
int main(void)
{
HINSTANCE hDll=LoadLibrary("impdll.dll");
if(!hDll)
{
cout<<"Error loading dll! ";
return -1;
}
MYFUNCTION myfunc=(MYFUNCTION)::GetProcAddress(hDll,"printstr");
if(!myfunc)
{
cout<<"Error finding process address! ";
::FreeLibrary(hDll);
return -1;
}
cout<<" lease set your choice:";
int a;
cin>>a;
myfunc(a);
::FreeLibrary(hDll);
return 0;
}
DLL:
#include "stdafx.h"
__declspec(dllexport) void printstr(int a);
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
void printstr(int a)
{
switch(a)
{
case 1:
cout<<"1 received!!"<<endl;
break;
case 2:
cout<<"2 received!!"<<endl;
break;
case 3:
cout<<"3 received!!"<<endl;
break;
case 4:
cout<<"4 received!!"<<endl;
break;
default:
cout<<"default received!!"<<endl;
break;
}
}
编译链接,结果为:Error finding process address! |
|