• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

char msg[1000]都显示成了“烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫....”,谁能帮我改正?让它正常输出?

111222 2001-07-29 01:11:00

源代码在:
http://263.csdn.net/FileBBS/files/2001_7/T_349_1.zip

这是一个检查PE结构分析用了哪些DLL的源代码,显示的结果显示在listctrl里面,但因为字符串问题,结果里面有大量的乱码“烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫....”,而不是应该的用到的DLL的名字。

Debug进去看到的部分值是正常的,后期不知怎么却又“烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫....”了。

最早用CString来显示,根本没法运行,后来被迫换成了char数组。看来CString也不是万金油,谁能告诉我是为什么?

还有一个问题就是,输入 路径+文件名 的结果有很多missing

而如果文件在同一目录直接 输入 文件名就正常了,即使是同一文件经过上面两种方式也有不同的结果。甚为不解。

再说一遍:源代码在 http://263.csdn.net/FileBBS/files/2001_7/T_349_1.zip
...全文
1385 点赞 收藏 34
写回复
34 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
windows_editor 2001-07-31
是因为你的数组中后面没用到的地址计算机自动给它付值的缘故,
回复
somn 2001-07-31
因为“烫”字的内码是“0xCCCC”,而VC在Debug Build时生成的函数在建立局部变量的空间时会用"0xCCCC"填充每一个局部变量空间的字节,对于msg[???]的情况,很正常被Debugger认成N个“烫”
回复
Sam_Yang 2001-07-31
这是 最简单的方法,给分
回复
Sam_Yang 2001-07-31
将 CPECheck::ListMsg 中 的 PostMessage 换成 SendMessage 就 ok 了
回复
victorchen_2000 2001-07-31
如果char msg[1000]; 是个临时变量,
PostMessage(m_hwnd,WM_PECHECK,(WPARAM)lpctstr,NULL);
所在函数执行后lpcstr就被释放了,所以会很"烫"
如果是全局变量则不会“烫”.
不过全局变量太多了也不好,特别是有时会有很多消息,有时消息传递的是复杂的结构。
也可以这样:
char *msg;
msg = (char*)malloc();
...PostMessage....

在消息处理后释放msg
回复
biggo 2001-07-31
我觉得是数据绑定的类型错了,
建议 char msg[1000]; 改为TCHAR msg[1000]

因为我刚重装了机,还没有来得急装vc6没有办法调试,只能先提个建议!
我在用ado写数据库的时候,遇到过烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫的问题
最后的结果就是数据绑定类型错了!
回复
kyokyo 2001-07-31
{
char msg[50];
memset(msg,'\0',50);
sprintf(msg," forwarder: %-12s %08X ",dosHeader + bidRVA + pibfr->OffsetModuleName,pibfr->TimeDateStamp);
ListMsg(msg);
pibfr++;
pibid = MakePtr(PIMAGE_BOUND_IMPORT_DESCRIPTOR,pibid,sizeof(IMAGE_BOUND_FORWARDER_REF));
//在这里,你的msg【】被人(系统)删除了
}
回复
q12345 2001-07-31
实际字符必须正好1000,多一个少一个,都会出现此问题。
回复
a_gan 2001-07-31
有那么麻烦吗?
char msg[1000] = "";
回复
konfyt 2001-07-31


夏天 夏天 夏天 夏天 夏天 夏天 夏天 夏天 夏天 夏天 夏天 夏天 夏天 夏天 夏天 夏天 夏天
回复
whitelion 2001-07-30
同意kevin_wang(kevin神) 的看法
回复
同桌老王 2001-07-30
这个现象见多了,一般说来是计算机随即显示的内存数据,你所定义的字符串,或者数组在你赋值之后,还没来得及显示,就被你的某个操作给删除了这块内存,或者你根本没有为之赋值,检查一下,你是不是在什么地方隐含着有删除对象的嫌疑?
祝你快乐
回复
joe_fox1025 2001-07-30
牛,真牛
回复
hp1200 2001-07-30
up
回复
tlovexyj 2001-07-30
因为post是马上返回,这时可能还未取到你所要的值,或只取了部分。
而send是需要等消息后才返回,所以~
回复
mahongxi 2001-07-30
static char mess[1000];
回复
fsb_12345 2001-07-30
先把数组初始化后再用,就不烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫...了
回复
深圳峰哥 2001-07-30
太烫了,请不要超频
哈哈。。。
回复
dongdong205 2001-07-30

你定义的是静态的数组吗,初始化时已经有了一个不确定的值,显示出来时就是烫。不是计算机觉

得烫。
回复
111222 2001-07-29


太奇怪了,为什么????

为什么PostMessage会出现乱码?????我想知道为什么......

那两个东东定义在 WINNT.H 里面。

回复
加载更多回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-07-29 01:11
社区公告

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