我试图用VS2010 (visual studio)构建4个版本的3D引擎(在C/c++中)。版本如下:
- 32位调试
- 32位版本
- 64位调试
- 64位版本
当我构建32位版本时,我需要在我的项目中包含这些文件:
- iceasm32.asm
- igasm32.asm
当我构建64位版本时,我需要在我的项目中包含这些文件:
- iceasm64.asm
- igasm64.asm
每一对32位asm文件包含与64位asm文件相同的函数,但显然32位项目必须只包含32位asm文件,64位项目必须只包含64位asm文件。
我的问题是这样的。
当我将32位asm文件添加到我的32位(win32)调试和发布项目中,然后运行32位调试和发布版本的程序,它们工作。
然后当我将IDE切换到64位(x64)调试和发布项目时,64位asm文件不再是项目的一部分,但32位asm文件是!因此,我从64位(x64)调试/发布项目中排除32位asm文件,并添加64位asm文件,然后我可以构建和运行这些项目。
但是当我将IDE切换回32位(win32)调试和发布项目时,它们现在包含64位asm文件而不是32位asm文件!
为什么会发生这种情况?
在不久前我的系统盘崩溃之前,我正在用VS2005开发这个程序,这个问题不存在。我可以把不同的文件作为32位和64位项目的一部分,它们会"保持不变"。
为什么这不能在VS2010中工作?
我怀疑这很重要,但我只在VS2010中安装了C/c++。我不确定我是否有不止一种VS2005语言,但我只使用C/c++工作或编程。
当然,32位和64位项目有不同的文件集是可能的!对吧?
对于VS 2015:您可以在解决方案资源管理器中右键单击masm-file,并选择masm-file的属性。在这里,您可以为每个配置(调试、发布、x86、x64)指定应该使用该文件的情况。该文件保留在解决方案资源管理器中,但用于不同的用途配置。