关于服务程序中全局变量的问题!

xy328 2001-08-24 12:47:55
我写了一个有两个服务的服务程序,我定义个一个全局变量 char test[10],当我在服务线程1中将这个全局变量赋值后(test[0] = 'a', test[1] = 'b',test[2] = 'c')我在服务线程2中调用这个全局变量(MessageBox(NULL,test,"Note",MB_OK)时,发现值并没有被赋进去,请问我该怎么解决这个问题。
即使我把全局变量声明成静态的 static char test[3] 这样也不成。
当如果我在声明全局变量是就给他赋初值 char test[3] = '123',在两个服务线程中都可以看到被赋的值。
...全文
149 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzou 2001-08-24
  • 打赏
  • 举报
回复
这样写呢:
memset(test,0,sizeof(test));
test[0] = 'a', test[1] = 'b',test[2] = 'c',tset[3]='\0';
Great_Bug 2001-08-24
  • 打赏
  • 举报
回复
请贴代码。。。。
Great_Bug 2001-08-24
  • 打赏
  • 举报
回复
访问完全正常!!!!! 没有任何问题!!!!!
xy328 2001-08-24
  • 打赏
  • 举报
回复
同步绝对没有问题!
azuo_lee 2001-08-24
  • 打赏
  • 举报
回复
1。别忘了加字符串结尾的“0”;
2。做好同步,保证第二个线程读test时,第一个线程已经完成了test的写入。
xy328 2001-08-24
  • 打赏
  • 举报
回复
我的赋值是在服务线程1创建的子线程中进行的
xy328 2001-08-24
  • 打赏
  • 举报
回复
不管什么类型的变量效果都是一样,请不要过于注重语法问题
Great_Bug 2001-08-24
  • 打赏
  • 举报
回复
应该没有问题的。。。。
test[0] = 'a', test[1] = 'b',test[2] = 'c',tset[3]='\0'; // 必须有'\0'作为string的终止标志。。。。
xzou 2001-08-24
  • 打赏
  • 举报
回复
全局变量用extern声明呀,是不是逻辑顺序不对,你MessageBox(NULL,test,"Note",MB_OK)时,还没有真正赋值过去。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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