我做了一个mfc扩张dll类新的dll(version.dll),在其中导出一个函数:
extern "C" __declspec(dllexport) void TestVer(int,int,int);
void TestVer(int i,int j,int k)
{
int c = 0;
c++;
};
编译通过在程序中测试时:
typedef void (*Test)(int,int,int);HMODULE TestDll = LoadLibrary("version.dll");
if(TestDll )
{
Test _Test = (Test)GetProcAddress(TestDll ,"TestVer");
问题1:为什么此处_Test指针一直为空?我查看了version.dll的输出,已经有Testver导出了
(*_Test )(1,2,3);
}
....
问题2:采用静态隐式连接,一直说无法定位Testver...请各位高手解答..用mfc动态dll类型做出来的也是一样的问题求大家解决
extern "C" __declspec(dllexport) void TestVer(int,int,int);
void TestVer(int i,int j,int k)
{
int c = 0;
c++;
};
编译通过在程序中测试时:
typedef void (*Test)(int,int,int);HMODULE TestDll = LoadLibrary("version.dll");
if(TestDll )
{
Test _Test = (Test)GetProcAddress(TestDll ,"TestVer");
问题1:为什么此处_Test指针一直为空?我查看了version.dll的输出,已经有Testver导出了
(*_Test )(1,2,3);
}
....
问题2:采用静态隐式连接,一直说无法定位Testver...请各位高手解答..用mfc动态dll类型做出来的也是一样的问题求大家解决
建议用.def文件定义导出函数
{
AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
int c = 0;
c++;
};
怎么写成了HMODULE
TestVer
就行了.找不到地址的原因就是名字不对,编译器在生成DLL的时候把函数的名字给改了.