DLL共享数据遇到的问题

a451618645 a451618645 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
共享数据段定义如下:

int i=0;
int count=0;
typedef struct Ip
{
PCSTR ip;
struct Ip * next;
}userIp;
userIp *head=NULL;//指向头结点
userIp *rear=NULL;//指向尾节点

DLLMain中初始化如下:

case DLL_PROCESS_ATTACH:
hmodDll=hModule;
if(i==1)
{
;
}
else
{
head=new (userIp);
head->ip="0.0.0.0";
head->next=NULL;
rear=head;//初始化链表;
i=1;
}

用程序Test.exe (1)调试该DLL,向其加入节点,成功,监视窗口显示i=2,
head=0x043f27c0,(*head).ip="0.0.0.0";
rear=0x043f4168;
这时不关闭这个调试窗口,再打开一个C++同样调试,在DLLMain开始设置断点,监视窗口显示i=2,head=0x043f27c0,rear=0x043f4168;就是和上面的一样,这说明了两个DLL确实共享了数据,但是第二个监视窗口却好像不能识别head指针内容一样,显示head=0x043f27c0,,(*head).ip=CX0030:Error:Expression connot be evaluted.
这是什没意思啊,怎么解决?
...全文
评论 8
收藏 已收藏
分享
返回顶部
a451618645
进程/线程/DLL 15,466 成员 49,169 内容