MFC 动态加载dll文件 变量的问题

[复制链接]
查看11 | 回复6 | 2021-1-27 06:05:51 | 显示全部楼层 |阅读模式
我做一个基于MFC对话框的一个程序动态加载dll文件
dll里有两个函数、和一些变量一个函数是设置变量的一个是获取变量的
我在一个button函数里调用设置变量的函数跟着做获取变量的函数获取得到的变量还是设置之前的值
而当我用两个button函数来处理的话一个设置一个获取得到的变量没问题
求高人帮看看
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:05:51 | 显示全部楼层
你DLL里的变量是全局的嘛?
回复

使用道具 举报

千问 | 2021-1-27 06:05:51 | 显示全部楼层
#pragmadata_seg(".MYDATA")
//变量定义
inti=0;
#pragmadata_seg()
回复

使用道具 举报

千问 | 2021-1-27 06:05:51 | 显示全部楼层
到DLL中调试一下
回复

使用道具 举报

千问 | 2021-1-27 06:05:51 | 显示全部楼层
变量在DLL里应该是全局变量的我现在有两个疑问:1、是不是由于DLL全局变量没有初始化照成的2、buttn按钮函数里调用2个DLL函数属于几个进程。
回复

使用道具 举报

千问 | 2021-1-27 06:05:51 | 显示全部楼层
设置变量和获取的变量是不是同一个变量?
不只是变量的值相同,而是是不是同一个变量,就是内存的地址一样,变量名也一样。
或者可以试试在调用完设置变量的函数后,用Sleep()函数停顿一下,然后再获取变量值,这样也许就会得到正确的值了。
最好,看一看dll的源代码,看看两个函数是怎么写的,然后调试一下。
回复

使用道具 举报

千问 | 2021-1-27 06:05:51 | 显示全部楼层
问题有了新的确定:
变量在DLL里为局部变量在DLL类初始化函数中给变量初始化
奇怪的是DLL有两个函数一个是SET变量一个是GET变量
在一个button消息函数里先执行SET变量函数后GET变量得到的值是SET函数之前的值
而我把这两个函数放到俩个button消息函数里get函数得到值没问题是SET后的值
这个问题困扰我好长时间了求牛人指点~~~!!!!
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行