关于调用dll的问题?

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

怎么才能调用函数sample,谢谢。
就是lib.h文件该怎么写?
...全文
83 7 点赞 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
某鸟 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文件
  • 打赏
  • 举报
回复
相关推荐
发帖
进程/线程/DLL
加入

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2004-11-08 05:58
社区公告
暂无公告