1.使用vs2019先是熟悉了一下配置环境。(生成依赖项、新建.asm文件、属性lib/include的设置)发现出现MSB3271错误,提示发生了生成错误,经过查资料发现使用.data就会报错,错误引起原因是msvc工具集版本不匹配,v14.26以上的版本无法编译masm32v11r。参考一下博客切换msvc,问题解决。
Visual Studio 2019切换MSVC版本【本问解决masm32v11r编译问题】_宝湖怪玩的博客-CSDN博客
关于属性中无Microsoft Macro Assembler?
点击.asm文件进行如下设置。
注意:汇编项目路径中_为非法字符,若有则会报错2044“main.asm”行1有非法字符以及MSB3721
2.之后点击sln文件导入2048项目。先在常规中修改平台工具集、windowsSDK版本(改为本地版本)。之后按照惯例修改链接器附加库目录(.masm32\lib)和includePath(.masm32\include),又在配置->高级中修改了msvc工具集版本(低于26)。结果仍然报MSB3271的错误。通过试验发现无法识别inc库,查阅资料发现还是因为msvc工具集版本不匹配,但是我已经修改了msvc工具集版本。
3.此时到这里就卡住了。然后又仔细检查了一遍属性配置,发现配置是Debug、x64。于是修改平台属性为Debug、Win32,并在活动栏修改解决方案平台为x86(32位)。于是之前所有的配置选项都要重新配置一遍(平台工具集、windowSDK、msvc工具集、附加库目录、includePath),于是重新运行,发现没有再报之前的错,但是有了新的错误。
4.在错误信息列表很容易发现错误是由于一些未初始化变量定义的时候在?中进行了定义(提示一些变量定义应放入数据段中)
.data ?
……
.data
……
于是试着把.data ?段中的定义数据移到了.data 中,并将.data?注释掉。
重新运行不再报错。
5.未知原因:
不知道为什么,我修改msvc工具集版本后编译并运行是没问题了,但是代码文件中还是有红色波浪线提示错误。