社区
C++ Builder
帖子详情
DLL中的全局变量问题?
ufwt
2003-04-18 02:36:38
在DLL中定义了一个全局变量:
const I =1;
请问在DLL load是好像不会初始化这个全局变量。
如何让他初始化?
...全文
85
5
打赏
收藏
DLL中的全局变量问题?
在DLL中定义了一个全局变量: const I =1; 请问在DLL load是好像不会初始化这个全局变量。 如何让他初始化?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ufwt
2003-04-18
打赏
举报
回复
我自己在另外一个DLL工程中写什么的话是可以初始化的,但是在工作工程中就是
没有初始化!有没有人遇见过这类问题?有什么解决方法,再不想只能用宏了。
BCB
2003-04-18
打赏
举报
回复
这个是常量呀。
dumeng
2003-04-18
打赏
举报
回复
得这莫定义const int i = 1;你定义的也不对
mustang_zr
2003-04-18
打赏
举报
回复
在DllEntryPoint中处理fdwReason =DLL_PROCESS_ATTACH事件
中进行初始化 当该事件发生时进行初始化
dumeng
2003-04-18
打赏
举报
回复
你再新建一个头文件包含进来,在你的 XX.bpf中就会有USE("XX.h", File);在头文件里就可以定义。
光工作了,好长时间没回贴了,嘻嘻!
易语言开发通达信DLL公式接口
目前市面上的股票软件的扩展接口基本上都是C/C++,python语言等开发的,英文代码确实难倒了一些国人。而易语言就是根据国人的习惯开发的编程语言,易学,易懂,易用被很多人所接受。很多的易语言爱好者很想用易语言来开发股票软件的扩展公式,而苦于股软件并没有提供易语言的开发接口。本系列课程将从数据结构,底层原理讲起,一步步分析并用易语言来编写通达信
DLL
公式接口接口,以及用编写的接口来编写各种公式。 学会了用易语言做通达信DLL接口的方法,其它的股票软件也可以按些方法做出来。
当调用的
DLL
中
有
全局
变量
时调用它的多个实例是否共享同一个
全局
变量
?????
当调用的
DLL
中
有
全局
变量
时调用它的多个实例是否共享同一个
全局
变量
????
问题
的起因原于自己在工作
中
需要调用一个动态库,而其
中
要用到一个
全局
的
变量
才能把需要的句柄给传出来,于是就想,如果有多个进程要调用这个动态库时,后面的进程调用同一个动态库时,是否会把以前调用同一个动态库时的
全局
变量
的值改变?????我猜想应该是不会的吧,于是带着这个疑惑,我写了一个示例程序来验证自己的想法。示例代码如下
当调用的
DLL
中
有
全局
变量
时调用它的多个实例是否共享同一个
全局
变量
当调用的
DLL
中
有
全局
变量
时调用它的多个实例是否共享同一个
全局
变量
????? 收藏 当调用的
DLL
中
有
全局
变量
时调用它的多个实例是否共享同一个
全局
变量
????
问题
的起因原于自己在工作
中
需要调用一个动态库,而其
中
要用到一个
全局
的
变量
才能把需要的句柄给传出来,于是就想,如果有多个进程要调用这个动态库时,后面的进程调用同一个动态库时,是否会把以前调用同一个动态库时的
全局
变量
的值改变?????我猜
Windows IPC机制:
DLL
文件
中
的
全局
变量
共享
默认情况下,每个进程加载的
DLL
会在其独立的内存空间
中
创建
全局
变量
的副本,这导致了
全局
变量
在不同进程之间的数据不一致性。但是,通过一些特定的技术手段,我们可以实现
DLL
文件
中
全局
变量
的共享,使得多个进程可以访问和修改同一个
全局
变量
的值。需要注意的是,虽然
DLL
文件可以实现
全局
变量
的共享,但同时也带来了一些
问题
。通过合理设计和使用
DLL
文件,可以实现
全局
变量
的共享,从而满足不同进程之间的数据通信和共享需求。不同进程加载同一个
DLL
文件时,它们都会共享同一个
全局
变量
的内存空间,从而实现了跨进程的数据共享。
dll
中
的
全局
变量
对于自定义
dll
,(非系统
dll
): 多进程分别加载
dll
时,由于各进程的地址空间是相互独立不可见的,
dll
的数据段是每个进程一份,
全局
变量
互不影响。 同一个进程的多个线程多次loadlibrary加载
dll
时,第一次loadlibrary时,进程载入指定的动态链接库,并将它映射到当前进程使用的地址空间。第二次及以后loadlibrary时,只会影响module的引用计数,返回的影像和句柄都是一样的。当然,
全局
变量
也是同一个内存地址,多线程
中
,一次更改,全部可见,需要同步。 对于系统
dll
,使用虚拟地
C++ Builder
13,826
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章