DLL装载成功,却找不到所需函数,请教了!

yqcxm 2003-11-12 10:45:23
DLL文件:
#include <windows.h>

#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
extern _declspec(dllexport)double mytest();
double mytest()
{
return 100.0;
}
DLL头文件:
#ifndef MyDllH
#define MyDllH
extern "C" _declspec(dllexport) double mytest();
#endif
外部程序调用代码:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HINSTANCE h;
FARPROC cv;
h=LoadLibrary("mydll");

if(h)
{
MessageBox(NULL,"成功装载MYDLL","成功",0);
cv=(FARPROC)GetProcAddress(h,"mytest");
if(cv)
{
MessageBox(NULL,"成功找到函数","成功",0);
double aa=cv();
Label1->Caption =AnsiString(aa);
}
else MessageBox(NULL,"找不到函数","失败",0);
FreeLibrary (h);
}

}
...全文
86 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yqcxm 2003-11-12
  • 打赏
  • 举报
回复
谢乐
ljianq 2003-11-12
  • 打赏
  • 举报
回复
如果不加__stdcall 或 WINAPI, 则:
cv=(FARPROC)GetProcAddress(h,"_mytest");
sfemil 2003-11-12
  • 打赏
  • 举报
回复
DLL文件中的声明也要加上"C"

extern "C" _declspec(dllexport)double __stdcall mytest();

可能还需要加上__stdcall

1,220

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧