vc9.0编译器的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 02:29:57
我的一个C程序,用VC9.0编译出来后,我自己可以用,但是在别人电脑上无法运行,但是用TURBO C编译后的可以运行
查看VC编译源程序
有这样一行
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>

而turbo C编译的是DOS程序,DUMPBIN无法查看

请问这样的问题如何解决?
同样代码编译出WIN32程序和DOS程序,除了是否使用DLL,在结构上还有什么不同?

VC9编译出来的需要VC9的运行时库,就是VS2008\VC\redist目录下的库文件,根据你的编译版本选择Debug版的还是Release版的,如果是Debug版的话,就把子目录Debug_NonRedist\x86\Microsoft.VC90.DebugCRT下的文件拷贝到你的程序目录下,如果用到了MFC就Microsoft.VC90.DebugMFC下的文件也拷到程序目录下,用到OpenMP的就Microsoft.VC90.DebugOpenMP下的文件也拷一下,这样应该就没问题了,如果是Release版的话,就到x86下把相应目录下的目录拷贝一下,总的说来有点麻烦,呵呵。turbo c编译的程序是EXE或COM结构的,就是16位的程序,程序最大不超过1MB,而Win32程序是PE结构的,是32位的程序,最大可达4GB,而且运行的机制不一样,在windows下执行时前者是模拟执行的,后者不需要。

用静态库编译,不要用DLL

无法解决,唯一办法就是不用VC9,改用编译出的程序兼容性更好的VC6,或者使用MinGW,DEV C++等这些东西。
推荐使用VC6。