在VS10中构建MASM错误

时间:2014-10-25 13:13:02

标签: visual-studio-2010 assembly syntax compilation masm

附加代码是SaveGame清理器的提供源。 唯一不明确的是入口点,它已被设置为主要入口点。 但[http://www.onlinedisassembler.com/odaweb/]的反编译器给出了像_start这样的东西。 第一个代码块是

; SaveTool V 1.13
_______________________________________________________________________________________

[true 1    false 0    NULL 0]


[FilterStrings: B$  'Save Files', 0, '*.ess', 0
                0,0,0]
*Error  6   error A2044: invalid character in file  SaveCleaner.asm 12  1*  SaveCleanerNextline
   [UserFileFilter: 0 #50] [ChoosenFile: 0 #64]


[OFN_FILEMUSTEXIST 01000  OFN_PATHMUSTEXIST 0800     OFN_LONGNAMES 0200000
 OFN_EXPLORER 080000      OFN_HIDEREADONLY 04]


[OFN_FLAGS        OFN_FILEMUSTEXIST+OFN_PATHMUSTEXIST+OFN_LONGNAMES+OFN_HIDEREADONLY+OFN_EXPLORER]


[OpenFileNameStructure:  len  hwndFileOwner: 0  OF_hInstance: 0  FilterStrings
                         0  0 1 FullChoosenFile 200 ChoosenFile
                         80  NULL  OpenFileTitle  OFN_FLAGS
                         nFileOffsetinChoosenFile: W$ 0  nFileExtensioninChoosenFile: 0
                         DefaultExtension: D$ NULL
                         HookCustomData:  NULL  HookProcPtr: NULL  HookTemplateName: 0 0   0 0 ]

[OpenFileTitle:        'Open .ess file' 0]
*Error  6   error A2044: invalid character in file  SaveCleaner.asm 12  1      SaveCleanerNextline*
[FullChoosenFile: 0 #64] [<16 algn: 0]
   __________________________________________________________________________________________

完整的代码块太大,无法在此处发布,因此可以在[http://www.ozemail.com.au/~lmstearn/files/SaveTool-source.asm]下载(右键单击) 配置已正确设置以编译代码,但会出现大量错误。

  

SaveCleaner.asm(142):错误A2008:语法错误:   SaveCleaner.asm(156):错误A2044:文件中的字符无效   SaveCleaner.asm(158):致命错误A1012:错误计数超过100;停止组装   C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ BuildCustomizations \ masm.targets(49,5):&gt;错误MSB3721:命令&#34; ml.exe / c / nologo / Zi /Fo"Debug\SaveCleaner.obj" / I&gt;&#34; C:\ masm32 \ lib&#34; /我&#34; C:\ masm32 \ include&#34; /我&#34; C:\ masm32 \ macros&#34; / W3 / errorReport:prompt&gt; /TaSaveCleaner.asm"退出代码1.

VS设置错过了什么?

1 个答案:

答案 0 :(得分:1)

您的asm源代码是 RosASM 源代码,您将无法在MASM / Visual Studio下编译它。

RosASM是一个win32汇编程序,它使用了一个非常原创的设计,可以将源代码存储在编译的可执行文件中(在专用部分中)和许多其他功能,如集成的IDE,集成调试器,一些功能强大的宏,一个资源编辑器,一个对话框编辑器,一个不需要滚动条的原始源导航样式,可以在名为&#34; titles&#34; ......的章节中划分源代码......这是一个需要的惊人工具一些练习来熟悉它,我仍然使用asm win32编程。

RosASM

我已经检查过代码与RosASM组装,但我既没有错误也没有结果,因为我没有相应的游戏。

最初的RosASM网站现已消失,但最近有一个dedicated forum重新上线,我维护archive site,您可以在其中获取二进制文件,以及大量示例和功能齐全的应用程序(甚至使用RosASM制作的工作NES仿真器,可以帮助您学习RosASM的使用。仅供参考,SpASM是RosASM的祖先,而BUASM是对未完成的RosASM的改造。

关于可执行入口点,您可以通过查看Proc Main TITLE MAIN来获取它,其中包含:{/ p>

Proc Main:

    call 'KERNEL32.HeapCreate' 0 0 0 | mov D$Heap eax

    call 'Kernel32.GetModuleHandleA' 0  | mov D$hInstance eax
    call 'USER32.DialogBoxParamA'  eax IDD_MAINDIALOG &NULL DialogProc &NULL

    call 'KERNEL32.HeapDestroy' D$Heap
    call 'KERNEL32.ExitProcess' 0
EndP

HTH。