首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

为什么VS2010创建的C++应用程序dumpbin数据段后看不到数据?该怎么解决

2012-02-03 
为什么VS2010创建的C++应用程序dumpbin数据段后看不到数据?最近在学习反汇编,用了一个很小的例子:C/C++ co

为什么VS2010创建的C++应用程序dumpbin数据段后看不到数据?
最近在学习反汇编,用了一个很小的例子:

C/C++ code
#include <iostream>using namespace std;#define pwd "mypassword"void main(){    char userPwd[100];    cout<<"crackme1"<<endl<<"enter password:";    cin>>userPwd;    if(strcmp(pwd,userPwd))        cout<<"wrong password\n";    else        cout<<"password OK!\n";}

用VS2010命令行工具输入:dumpbin /SECTION:.data /RAWDATA test.exe >.data
生成的.data文件中没有代码里写的数据,用VC++6.0生成的程序却可以看到!
而且用VS2010生成的程序.data文件是4KB,而VC6的有80KB!
请高手解惑!

[解决办法]
和编译设置有关,你在VC6里和VC10一样动态链接多线程版的CRT的话,这些字符串也在rdata里面。
VC6默认连的是单线程版的CRT,这个在VC2005里面去掉了。

热点排行