如何使用DLL中的函数设置DLL中的全局变量?

counterbug 2003-06-24 06:29:05
我想调用DLL中的函数去设置DLL中声明的一些全局变量(应声明为static),可设置完后,在调用DLL中其他函数中(DLL内部),这些全局变量却不是后设置的那些值。到底要怎么做才可以呢?
...全文
181 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
konfyt 2003-09-05
  • 打赏
  • 举报
回复
涨见识了
In355Hz 2003-07-01
  • 打赏
  • 举报
回复
在共享区域保存指针不好。因为在某个进程内部保存到 char** 的指针在另一个进程看来是非法的,建议放弃字符串数组而利用一块足够大的字符数组:

#pragma data_seg(".share")
// 用 szData 存放字符串,offsetData[i] 保存各个字符串位置,用 szData + offsetData[i] 引用。
char szData[65536] = { '\0' };
DWORD offsetData[4096] = { 0 };
#pragma data_seg

#pragma comment(linker, "/section:.share, rws")
counterbug 2003-06-25
  • 打赏
  • 举报
回复
sorry, 没说清楚,是这样的,我要做一个hook的Dll,有一些值要在启动时由dll外部设置,供hook时用。可我设置好后,在hook到一个消息,调用这些变量时,这些变量去不是我设的那些值。有人告诉我要用
#pragma data_seg(".share")
...
#pragma data_seg

在link中设置/SECTION:.share,S

我做了以后却有 LINK : warning LNK4039:
而且也不好使,能具体说明一下该怎么做吗?
counterbug 2003-06-25
  • 打赏
  • 举报
回复
char** 那个我也赋予了初值了,并在后来也设置过了,可是hook处理时,去里面得值却出错,怎么回事啊?
rivershan 2003-06-25
  • 打赏
  • 举报
回复
#pragma data_seg(".share")
...//数据一定要初始化
#pragma data_seg

#pragma comment(linker, "/section:.share, rws")
cneptune 2003-06-25
  • 打赏
  • 举报
回复
#pragma data_seg(".share")
...
#pragma data_seg

#pragma comment(linker, "/section:.share, rws")
counterbug 2003-06-25
  • 打赏
  • 举报
回复
现在对于int 这样类型的已经可以了,可是对于字符串数组char**却不行,总是出错。
怎么才能让char**也有效呢?
o_racle 2003-06-24
  • 打赏
  • 举报
回复
不会的,要把设置的值及时传出来
guoyin 2003-06-24
  • 打赏
  • 举报
回复
有代码吗?应该不会呀!
我就是这么设置的
static AFX_EXTENSION_MODULE IdleDllDLL = { NULL, NULL };

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧