5162|7

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

我用VS调用了DLL里面的函数 这函数的定义应该放在哪个头文件里面 是在XXXDLG。H里面还是XXX。H里面 是直接声明吗? [复制链接]

我对应用程序不是很了解
我用VS调用了DLL里面的函数 这函数的定义应该放在哪个头文件里面 是在XXXDLG。H里面还是XXX。H里面 是直接声明吗?
谁帮我解释下

最新回复

学习了  详情 回复 发表于 2010-5-12 09:37
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你是怎么调用DLL里面函数的?动态还是静态?
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
#include "XXXXX.h"
#pragma comment(lib,"XXXXX.lib")
如果这样调用放在要调用的DLL函数的文件头中就可以了。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 2 楼 m593192219 的回复:

#include "XXXXX.h"
#pragma comment(lib,"XXXXX.lib")
如果这样调用放在要调用的DLL函数的文件头中就可以了。

你这个只是适用于lib。
dll不是这样调用的。
dll的函数你要用LoadLibrary Load进来,然后每个函数重定向到一个函数指针,调用函数指针来用;
或者直接#import 进来做也可以。
去查查MSDN先。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
假设你有一个dll,文件名yourdll.dll,里面有个函数JustTest(UINT, UINT)
调用的demo如下:

  1. HINSTANCE        hInstance;
  2. HANDLE                (FAR *lpFunction1)(UINT, UINT);

  3. if ((hInstance = LoadLibrary("yourdll.dll")) == NULL)
  4. {
  5.         MessageBox("Can not found yourdll.dll!", "Initialization error", MB_OK);
  6.         return FALSE;
  7. }

  8. lpFunction1= (HANDLE (FAR*)(UINT, UINT))GetProcAddress(hInstance, "JustTest");

  9. if (lpFunction1== NULL)
  10. {
  11.         MessageBox("Fail to load function JustTest!", "Initialization error", MB_OK);
  12.         return FALSE;
  13. }
复制代码

如果Load成功,就可以直接调用(*lpFunction1)(UINT, UINT)了,这个就是你的JustTest。
你好好看下MSDN,很快就能学会的。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

6
 
LoadLibrary是动态链接,可以没有.h和.lib
#import是静态链接,必须有.h和.lib
#pragma comment(lib,"XXXXX.lib")只是链接静态库
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
大家都说的很好
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

8
 
学习了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表