MS Visual Studio 2010如何使用.asm生成的文件
我想询问一些我想尝试使用 Visual Studio 2010 的事情。
我通过在项目属性中将选项设置为“汇编器输出”来从 .cpp 文件生成一个 .asm 文件 --> C/C++ -->输出文件 (/FA)。
我的问题是,下一步如何使用 .asm 生成的文件从该文件再次链接,而不再使用 .cpp 文件,以防我想在 .asm 文件内进行一些修改,然后通过保留再次链接我在装配级别所做的修改。
如果您可以提供确切的步骤,包括项目属性中可能需要的正确配置,那将非常有帮助。
I would like to ask about something I am thinking to try with Visual Studio 2010.
I am generating an .asm file from the.cpp file by setting the option to the "Assembler Output" in the project properties --> C/C++ --> Output Files (/FAs).
My question is, how can I on a next step use that .asm generated file to link again from that one without using anymore the .cpp file, in case I want to do some modifications inside the .asm file and then link again by keeping the modifications I did at assembly level.
It would be very helpful if you could provide the exact steps, including the correct configuration may needed in the project properties.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是一个教程 http://www.cs.virginia.edu/ 〜evans/cs216/guides/vsasm.html
Here is a tutorial http://www.cs.virginia.edu/~evans/cs216/guides/vsasm.html
我最近做了这个。这是我在这里给出的答案的重复 compile- assembly-output-由-vc 生成。事实证明,在 MSVC2012 中您仍然可以在 32 位模式下执行此操作,但我认为 64 位模式是没有希望的。
对于 32 位模式,您需要执行以下操作。
创建一个空项目和一个源文件 Source.cpp
按照此处所述选择 masm http://www.masm32.com/board/index .php?topic=9231.0
/GL
)。这会添加行INCLUDELIB MSVCRT
/SAFESEH:NO
)我已将其用于更复杂的功能。我通常在单独的模块上执行此操作,并在函数名称上使用 extern "C" 来删除 C++ 名称修饰。
I did this recently. Here is a repeat of the answer I gave here compile-assembly-output-generated-by-vc. It turns out you can still do this in 32-bit mode in MSVC2012 but I think 64-bit mode is hopeless.
For 32-bit mode here is what you do.
Create an empty project and a source file Source.cpp
select masm as described here http://www.masm32.com/board/index.php?topic=9231.0
/GL
). This adds the lineINCLUDELIB MSVCRT
/SAFESEH:NO
)I have used this for more complicated functions. I usually do it on a separate module and use
extern "C"
on the function name to remove the C++ name mangling.只需将 .obj 文件拖到项目(解决方案资源管理器树)中即可:
如何将 .obj 文件包含到项目中
Simply drag the .obj files into the Project (Solution Explorer tree):
How to include .obj files into the project