DLL中的全局变量问题。

ThinkBe 2004-10-09 10:25:26
在一个ATL COM项目里,有个放全局变量的头文件,里面放一静态变量

///////////////////
// global_var.h
///////////////////
static int test = 0;

在CAtlDllModule的DllMain函数里,访问这个变量,
和在Com的成员函数里,访问这个变量,发现值是不同的,变量test的地址也不一样,为什么?

用下面方式就可以代替,为什么?
///////////////////
// global_var.h
///////////////////
class global_vars
{
static int test;
};
static int global_vars::test = 0;
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
icelight 2004-10-09
  • 打赏
  • 举报
回复
楼上正解。用extern。
  • 打赏
  • 举报
回复
全局变量的用法:

文件1中:
int x;
文件2中
extern int x;

最好都在*.cpp中
MuseIn 2004-10-09
  • 打赏
  • 举报
回复
静态变量,全局变量概念不相同
  • 打赏
  • 举报
回复
///////////////////
// global_var.h
///////////////////
class global_vars
{
static int test;
};
static int global_vars::test = 0;// 建议放到global_var.cpp中

类的静态成员变量
  • 打赏
  • 举报
回复
static int test = 0;静态变量不是全局变量
nwpulipeng 2004-10-09
  • 打赏
  • 举报
回复
帮顶混分

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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