社区
进程/线程/DLL
帖子详情
想问下通过动态加载DLL的方式能使用库的头文件中定义的全局变量不??
RabbitLBJ
2011-01-18 03:49:55
动态加载,用::LOADLIBRARY,::GETPROCADDRESS,不需要包含库的头文件,不知道这样有没有方式可以关联到库中的全局变量??
...全文
137
9
打赏
收藏
想问下通过动态加载DLL的方式能使用库的头文件中定义的全局变量不??
动态加载,用::LOADLIBRARY,::GETPROCADDRESS,不需要包含库的头文件,不知道这样有没有方式可以关联到库中的全局变量??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
风之子赛拉飞尔
2011-01-19
打赏
举报
回复
不是这个意思,DLL模块导出的变量跟同一模块内多个cpp共用一个变量是绝对不同的:)
LZ的所有的想法全部是适用于后者的。
系统只提供有GetProcAddress而没有提供 获得导出变量地址的方法
RabbitLBJ
2011-01-18
打赏
举报
回复
[Quote=引用 7 楼 dobzhansky 的回复:]
那个变量的名字编译后就是一个地址了,
除非你通过某种手段找到地址,
否则就用 get/set 函数
[/Quote]
你是说的这样吗??*(int*)var??这样也不行
Dobzhansky
2011-01-18
打赏
举报
回复
那个变量的名字编译后就是一个地址了,
除非你通过某种手段找到地址,
否则就用 get/set 函数
风之子赛拉飞尔
2011-01-18
打赏
举报
回复
[Quote=引用 5 楼 windsonzhl 的回复:]
导出变量跟导出函数一样,同样需要__decspec(dllexport)、__decspec(dllimport)
[/Quote]
只能是静态链接方式,动态链接方式下只能通过导出函数来操作变量
风之子赛拉飞尔
2011-01-18
打赏
举报
回复
导出变量跟导出函数一样,同样需要__decspec(dllexport)、__decspec(dllimport)
covsno
2011-01-18
打赏
举报
回复
导出个函数来操作吧
RabbitLBJ
2011-01-18
打赏
举报
回复
请问我这样做的有什么不对吗??
1.先在DLL头文件中定义一个变量extern int var;
2.在DLL CPP文件DLLMAIN中修改var的值为100.
int var;
var=100;
3.在DEF文件中声明:
EXPORTS
var DATA
4.在需要使用的CPP中,extern int var;
然后使用这个变量,却报错,不知道怎么回事啊??
oyljerry
2011-01-18
打赏
举报
回复
需要把全局变量放到dll的共享数据段中访问
renxu350
2011-01-18
打赏
举报
回复
可以,但是如果需要DLL跨两个进程装载,并共享同一个变量的话需要将共享的全局变量定义在共享数据段内
vc
加载
动态
链接
库
1.概论 先来阐述一下
DLL
(Dynamic Linkable Library)的概念,你可以简单的把
DLL
看成一种仓
库
,它提供给你一些可以直接拿来用的变量、函数或类。在仓
库
的发展史上经历了“无
库
-静态链接
库
-
动态
链接
库
”的时代。 静态链接
库
与
动态
链接
库
都是共享代码的
方式
,如果采用静态链接
库
,则无论你愿不愿意,lib
中
的指令都被直接包含在最终生成的EXE文件
中
了。但是若
使用
DLL
,该D
VC++
动态
链接
库
编程之MFC
DLL
1.概论 先来阐述一下
DLL
(Dynamic Linkable Library)的概念,你可以简单的把
DLL
看成一种仓
库
,它提供给你一些可以直接拿来用的变量、函数或类。在仓
库
的发展史上经历了“无
库
-静态链接
库
-
动态
链接
库
”的时代。静态链接
库
与
动态
链接
库
都是共享代码的
方式
,如果采用静态链接
库
,则无论你愿不愿意,lib
中
的指令都被直接包含在最终生成的EXE文件
中
了。但是若
使用
DLL
,该
DLL
动态
链接
库
(
DLL
)编程深入浅出
1.概论 先来阐述一下
DLL
(Dynamic Linkable Library)的概念,你可以简单的把
DLL
看成一种仓
库
,它提供给你一些可以直接拿来用的变量、函数或类。在仓
库
的发展史上经历了“无
库
-静态链接
库
-
动态
链接
库
”的时代。 静态链接
库
与
动态
链接
库
都是共享代码的
方式
,如果采用静态链接
库
,则无论你愿不愿意,lib
中
的指令都被直接包含在最终生成的EXE文件
中
了。但是若
使用
DLL
,该D
动态
链接
库
(
DLL
)
链接
库
分为静态链接
库
和
动态
链接
库
,而
动态
链接
库
在
使用
时,又进一步分为装载时链接和运行时链接。装载时链接是指该
动态
链接
库
是在程序装入时进行
加载
链接的,而运行时链接是指该
动态
链接
库
是在程序运行时执行LoadLibrary(或LoadLibraryEx,下同)函数
动态
加载
的。因此,由于
动态
链接
库
有这两种链接
方式
,所以在编写
使用
DLL
的程序时,就有了两种可选方案。 可能有人会问“为
VC++
动态
链接
库
(
DLL
)编程深入浅出
1.概论 先来阐述一下
DLL
(Dynamic Linkable Library)的概念,你可以简单的把
DLL
看成一种仓
库
,它提供给你一些可以直接拿来用的变量、函数或类。在仓
库
的发展史上经历了“无
库
-静态链接
库
-
动态
链接
库
”的时代。 静态链接
库
与
动态
链接
库
都是共享代码的
方式
,如果采用静态链接
库
,则无论你愿不愿意,lib
中
的指令都被直接包含在最终生成的EXE文件
中
了。但是若
使用
DL
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章