首页
社区
课程
招聘
[求助]关于DLL中的共享数据段问题
发表于: 2008-6-13 10:30 8173

[求助]关于DLL中的共享数据段问题

2008-6-13 10:30
8173
我写了一个dll,并用SetWindowsHookEx安装成全局钩子映射进每个用户进程。
但是目前遇到了一点问题,就是DLL中的共享数据段问题。
我在共享数据段中放了一些变量,
变量类型有DWORD,int,BOOL,HHOOK,char*
比较郁闷的是,除了字符串以外,其他的变量确实全局共享成功,每个进程都可以看到,但是字符串却怎么都不能共享。
在共享段中,字符串我直接这样定义的:
char szpath[MAX_PATH];
应该没有问题吧?

在我输出的调试语句中,可以清楚看到其中一个进程中我的DLL输出的szpath是有内容的,但是在另一个进程的输出中,那个DWORD类型的成功输出,字符串却始终为0,指针也非无效指针,但就是内容为空。按照共享数据段的说法,这个段是全局共享,每个进程中的该DLL都共享这个实例,修改也是即时的。为什么字符串不行呢?明明其中一个有,另一个却没有!

大家帮忙解决下吧~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
刚刚又在群里问了其他人,问题解决了。
关键是在于我别的变量初始化了,而字符串没有,被编译器搞了
随便给它初始化个值,就搞定了!
2008-6-13 10:49
0
雪    币: 204
活跃值: (144)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
共享数据段中的变量要初始化后才能共享,
char szpath[MAX_PATH] = "";
2008-6-13 10:50
0
游客
登录 | 注册 方可回帖
返回