DLL共享数据遇到的问题
共享数据段定义如下:
DLLMain中初始化如下:
用程序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.
这是什没意思啊,怎么解决?
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.
这是什没意思啊,怎么解决?
...全文


进程/线程/DLL
