2016-10-22 264 views
1

我试图在内置MASM的Visual Studio 2015中运行以下代码。我正试图将Irvine库文件链接到程序。但是,我得到49个以下错误。Visual Studio包含irvine32.inc生成SmallWin.inc错误

A2C \Irvine\SmallWin.inc(11)or specified size 
A2C \Irvine\SmallWin.inc(12)or specified size 
A2C \Irvine\SmallWin.inc(299)for specified size 

这里是我的代码

ExitProcess PROTO 

includelib C:\Irvine\Kernel32.Lib 
includelib C:\Irvine\User32.Lib 
includelib C:\Irvine\Irvine32.lib 
include Irvine32.inc 

.data 
str1 BYTE "This line is displayed in color",0 

.code 
main PROC 

    mov eax, black + (white * 16) ; black on white backgrouund 
    mov ecx,4 ; loop counter 

L1: call SetTextColor 
    mov edx,OFFSET str1 
    call WriteString 
    call Crlf 
    add eax,2 ; add 2 to foreground color 
    loop L1 

    call ExitProcess 
main ENDP 
END 

为什么尔湾库不链接?

+0

你有什么版本的Irvine32库? (即Kip Irvine的书的版本是从哪里来的?)另外,您是否可以粘贴SmallWin.inc中的错误行和其附近的代码片段。这几乎听起来像Visual Studio使用64位MASM来组装这个32位代码,但这只是一个猜测。 – byteptr

+0

你说得对,我试图用x64 MASM来组装32位代码。 – ISM34

回答

0

尝试在64位MASM程序应用程序中编译32位程序。需要为32位汇编语言项目设置Visual Studios。

+0

要在不同的MASM平台(即32位= ml.exe/64位= ml64.exe)之间切换,请在Visual Studio工具栏中下拉平台框,并在x86/Win32和x64之间切换。您还可以从配置管理器对话框中编辑特定的平台构建配置。 – byteptr

相关问题