分类:
2008-10-13 16:10:29
今天对VC6做了一次完整的小手术,也对这个开发环境有了深入的了解。
vc6做的不错,这是我一直难以割舍的原因所在,vs2k5又那么大,所以改改vc6吧。
话说强人们,他们都用gcc,Intel C++ 9.x, 10, 我咋还搞 vs 2k5呢? 喜好呗~~
首先改动的最后效果是,只能编译一下Release版本的程序,Debug也可以,但是不可以调试,调试文件格式变了,用的坛子里的周星星
介绍的一个工具,vc6里面调试用的DLL,初步看是 Common\MSDev98\Bin\MSDIS110.DLL pdb60.dll。而调试2k5连接器(link.exe) 的PDB文件,用的是
msdis150.dll, mspdb80.dll 等,函数的入口地址等等都变了,所以肯定是不想向下兼容了,如果兼容了,就没有人再用高版本的库编译了,特别是我国人经常说的一句话: “实现了就行了... 我日”。
区别:
1. 编译器调整了,vc6的编译器选项和连接器选项部分没用了,需要手工改,或者pragma指令修改。
2. 编译资源的rc.exe rcDll.dll 可以成功覆盖到vc6. rcxdti.dll是开发环境让用户修改资源用的,也可以覆盖过来。
3. 编译器,连接器等 vc98\bin\ 下面的 不可以覆盖,需要建立两套环境,vc6,vc8两种编译环境。
4. msdev\tools 可以全部搞过来,但是vc6的tool里面有一些作废的小工具还是建议保留。
5. 用了2k5的编译器,包含文件,库文件,mfc,atl都要换成vs2k5的,不可以用vc6自带的了,这些都经过验证可行。
Deleting intermediate files and output files for project 'SeaRoutesExample - Win32 Debug'.
--------------------Configuration: SeaRoutesExample - Win32 Debug--------------------
Compiling resources...
Compiling...
用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 14.00.50727.762 版
版权所有(C) Microsoft Corporation。保留所有权利。
cl /MDd /W3 /Gm /GX /ZI /Od /I ".\\" /I "..\..\..\..\..\INCLUDE" /I "..\..\..\..\..\INCLUDE\CM93_3" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR"Debug/" /Fp"Debug/SeaRoutesExample.pch" /Yc"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /G
Z /c
cl: 命令行 warning D9035 :“GX”选项已否决,并将在将来的版本中移除
cl: 命令行 warning D9036 :使用“EHsc”而不使用“GX”
cl: 命令行 warning D9035 :“GZ”选项已否决,并将在将来的版本中移除
cl: 命令行 warning D9036 :使用“RTC1”而不使用“GZ”
"D:\__coding\HECDIS\Samples\C-Routes\StdAfx.cpp"
StdAfx.cpp
WINVER not defined. Defaulting to 0x0502 (Windows Server 2003)
Compiling...
用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 14.00.50727.762 版
版权所有(C) Microsoft Corporation。保留所有权利。
cl /MDd /W3 /Gm /GX /ZI /Od /I ".\\" /I "..\..\..\..\..\INCLUDE" /I "..\..\..\..\..\INCLUDE\CM93_3" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR"Debug/" /Fp"Debug/SeaRoutesExample.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /G
Z /c
... ...
c:\program files\不让你看.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
正在生成代码...
Linking...
LINK : warning LNK4044: unrecognized option '/pdbtype:sept'; ignored
SeaRoutesExample.exe - 0 error(s), 28 warning(s)
所以:如果你也像我一样想在vc6的环境里用2k5的编译器编译Release,Debug(无意义),回答是可行的,而且还可以用中文UI(把编译器下1033改一下名字,用2052的资源【中文】) ,
过几天把2008也给黑了,或者把2008搞到2005里面也未尝不可呀~~~
如果你也想搞一下的话,注意以下几个动态库&EXE
1: msobj80.dll
2. mspdb80.dll
3. mspdbsrv.exe mspdbcore.dll
欢迎来信来函批评指正,禁止谩骂,共同建设不和谐社会,一起“喷小康”!