附加代码是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设置错过了什么?
答案 0 :(得分:1)
您的asm源代码是 RosASM 源代码,您将无法在MASM / Visual Studio下编译它。
RosASM是一个win32汇编程序,它使用了一个非常原创的设计,可以将源代码存储在编译的可执行文件中(在专用部分中)和许多其他功能,如集成的IDE,集成调试器,一些功能强大的宏,一个资源编辑器,一个对话框编辑器,一个不需要滚动条的原始源导航样式,可以在名为&#34; titles&#34; ......的章节中划分源代码......这是一个需要的惊人工具一些练习来熟悉它,我仍然使用asm win32编程。
我已经检查过代码与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。