VS2008编译汇编程序的问题
2013-08-16 11:44
246 查看
在VS2008 pro里已经集成了MASM,经过相关设置后,编译出了程序,但是执行后,说少msvcr90.dll
39944
然后自己写了个C的程序在DEPEND中对比了下两个的导入表。
39946
39945
那个testprintf是执行正常的。
虽然两个都有引入msvcr90.dll
问下,这是为什么?
说来生成的OBJ文件应该是正确的,可能在LINK的时候出了问题,请教下怎么设置。
附源码,请教怎么在VS2008编译能正确执行。
;程序清单:cpuid.asm(读取CPU标识)
.586
.model flat,stdcall
Option casemap:none
includelib msvcrt.lib
printf PROTO C :dword,:vararg
.data
szVendorID byte 13 dup (0)
szFormatStr byte 'VendorID = %s; Processor SN = %08X%08X', 0ah
.code
start:
mov eax, 0
cpuid
mov dword ptr szVendorID, ebx
mov dword ptr szVendorID+4, edx
mov dword ptr szVendorID+8, ecx
mov eax, 3
cpuid
invoke printf, offset szFormatStr,
offset szVendorID, ecx, edx
ret
end start
附:
Visual Studio汇编语言环境配置 http://blog.creke.net/629.html
搞定了,我自己来答吧。后来在系统里搜msvcr又看到了msvcr90.dll复制到环境变量里的一个目录,执行报错,用depend查,printf出现了在导入表那。不知道,是不是在msvcr90.dll要调用printf,是不是要做一些相关初始化工作。
正确的是
配置属性-链接器-输入 中,将附加依赖项改为:
C:\masm32\lib\*
我的MASM 9装在C:\masm32\
这样链接时,msvcrt.lib就会使用masm9的那个引入库,会链接到MSVCR.DLL,而不是那个msvcr90.dll。
39944
然后自己写了个C的程序在DEPEND中对比了下两个的导入表。
39946
39945
那个testprintf是执行正常的。
虽然两个都有引入msvcr90.dll
问下,这是为什么?
说来生成的OBJ文件应该是正确的,可能在LINK的时候出了问题,请教下怎么设置。
附源码,请教怎么在VS2008编译能正确执行。
;程序清单:cpuid.asm(读取CPU标识)
.586
.model flat,stdcall
Option casemap:none
includelib msvcrt.lib
printf PROTO C :dword,:vararg
.data
szVendorID byte 13 dup (0)
szFormatStr byte 'VendorID = %s; Processor SN = %08X%08X', 0ah
.code
start:
mov eax, 0
cpuid
mov dword ptr szVendorID, ebx
mov dword ptr szVendorID+4, edx
mov dword ptr szVendorID+8, ecx
mov eax, 3
cpuid
invoke printf, offset szFormatStr,
offset szVendorID, ecx, edx
ret
end start
附:
Visual Studio汇编语言环境配置 http://blog.creke.net/629.html
搞定了,我自己来答吧。后来在系统里搜msvcr又看到了msvcr90.dll复制到环境变量里的一个目录,执行报错,用depend查,printf出现了在导入表那。不知道,是不是在msvcr90.dll要调用printf,是不是要做一些相关初始化工作。
正确的是
配置属性-链接器-输入 中,将附加依赖项改为:
C:\masm32\lib\*
我的MASM 9装在C:\masm32\
这样链接时,msvcrt.lib就会使用masm9的那个引入库,会链接到MSVCR.DLL,而不是那个msvcr90.dll。
相关文章推荐
- VS2008编译汇编程序的问题
- VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- 转载VS2008 编译出来的exe文件,运行遇到“应用程序配置不正确,程序无法启动”的问题
- VS2008编译出的程序在另一台机器上无法运行的问题
- VS2008下编译C++程序,解决找不到 stdint.h的问题方案
- 解决VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- 【转】解决VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- VS2008编译64位程序的平台设置问题
- VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- VS2008编译的mfc程序在没有安装的机子上运行出现配置错误的问题
- VS2008编译的mfc程序在没有安装的机子上运行的问题
- VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- [转]VS2008编译出的程序在另一台机器上无法运行的问题
- 在win7下用vs2008 编译程序时出现“mt.exe停止工作”问题的解决办法
- 一个关于VS2008在其他未安装VS2008的电脑上无法运行编译的程序的问题
- VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- VS2008中编译64位程序以及遇到的问题 .
- VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题