关于调用dll的问题?

zxwitsme 2004-11-08 05:58:33
已知lib.dll和它里面有个函数void sample(int i);

怎么才能调用函数sample,谢谢。
就是lib.h文件该怎么写?
...全文
109 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
某鸟 2004-11-09
  • 打赏
  • 举报
回复
INITDEVICE是我原来程序里带的,没改干净,呵呵
sinall 2004-11-09
  • 打赏
  • 举报
回复
typedef void (WINAPI *SAMPLE)(int);

然后就可以用了:
HINSTANCE hinstLib = LoadLibrary("lib");
SAMPLE ProcSample;
if (hinstLib != NULL)
{
ProcSample = (SAMPLE) GetProcAddress(m_hinstLib , "sample");
if(ProcSample)
ProcSample(3);
FreeLibrary(hinstLib);
}

以上所有的写在你用到的地方
zxwitsme 2004-11-09
  • 打赏
  • 举报
回复
搞定了,给分
zxwitsme 2004-11-09
  • 打赏
  • 举报
回复
typedef void (WINAPI *SAMPLE)(int);
放在哪里定义呢?.h文件中吗?
还有SAMPLE和INITDEVICE在哪里定义的?
多谢了
某鸟 2004-11-08
  • 打赏
  • 举报
回复
写错了,typedef int (WINAPI *SAMPLE)(int);
应该是typedef void (WINAPI *SAMPLE)(int);
某鸟 2004-11-08
  • 打赏
  • 举报
回复
exe的文件中(即lib.h)写:
extern "C" __declspec(dllimport) void sample(int i);

然后定义
typedef int (WINAPI *SAMPLE)(int);

然后就可以用了:
HINSTANCE hinstLib = LoadLibrary("lib");
SAMPLE ProcSample;
if (hinstLib != NULL)
{
ProcSample = (INITDEVICE) GetProcAddress(m_hinstLib , "sample");
if(ProcSample)
ProcSample(3);
FreeLibrary(hinstLib);
}

不好意思,没调试,看看能否运行?
zxwitsme 2004-11-08
  • 打赏
  • 举报
回复
没有。lib文件

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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