我在dll中的函数如下
extern "C" __declspec( dllexport ) double WINAPI test(double a)
{
a++;
return a;
}
在应用程序中调用如下:
typedef double(SQRTPROC)(double);
HINSTANCE hInstance;
SQRTPROC* pFunction;
VERIFY(hInstance=::LoadLibrary("dll.dll"));
VERIFY(pFunction=(SQRTPROC*)::GetProcAddress(hInstance,"test"));
double d=(*pFunction)(81.0);//调用该DLL函数
为什么运行到VERIFY(pFunction=(SQRTPROC*)::GetProcAddress(hInstance,"test"));这句出错
大家帮我看看错在哪里?
extern "C" __declspec( dllexport ) double WINAPI test(double a)
{
a++;
return a;
}
在应用程序中调用如下:
typedef double(SQRTPROC)(double);
HINSTANCE hInstance;
SQRTPROC* pFunction;
VERIFY(hInstance=::LoadLibrary("dll.dll"));
VERIFY(pFunction=(SQRTPROC*)::GetProcAddress(hInstance,"test"));
double d=(*pFunction)(81.0);//调用该DLL函数
为什么运行到VERIFY(pFunction=(SQRTPROC*)::GetProcAddress(hInstance,"test"));这句出错
大家帮我看看错在哪里?
解决方案 »
- MFC的FTP类限速
- 数据库操作,当PutCollect或者GetCollect()发生异常的时候,如何得到是该字段出问题?
- 如何在对话框A弹出的对话框B中获得A的指针?
- The Active X control cannot be instantiated
- 键盘键盘键盘--能让DX游戏响应的模拟击键
- 一口气问2个问题,我刚来分不多疑问一大队/菜单图表和基本贴图疑问
- 我想给按钮设一个bitmap,为什么不行?
- 你需要什么样的书
- 关于自画光标,我想一定是个经典的简单问题
- 求教 MFC程序打开时显示OCX控件加载失败怎么办?
- 为什么不能 直接使用RichEdit ??
- ***有关DemoShield的问题,请大家帮帮忙(要几分给几分,先给100)
...
double d=(pFunction)(81.0);//调用该DLL函数 最后, 你试着把
pFunction=(SQRTPROC)::GetProcAddress(hInstance,"test");
改为
pFunction=(SQRTPROC)::GetProcAddress(hInstance,"_test"); 看看, 可能就行了, 因为 VC 会把 函数名前加'_'(这不是C++重命名函数名的问题,因为代码中已经extern "C"了)
如果 一定要 VC 生成dll 的时候, 用test 的这个函数名 可以这样:
写个 dll.def 文件 加入到工程里面去,内容为EXPORTS
test=test