2016-02-25 84 views
0

好的,所以我有一个用C++编写的控制台项目。我需要一个图形用户界面,我不想混淆任何可用的图形用户界面库,所以我转向了C#。Visual Studio 2012:在DLL项目中使用MASM x64

该应用程序做了很多低级别的东西,包括一些汇编代码,由于x64不支持内联汇编,所以我使用的是MASM。所以我不能合理地移植代码,所以我让C++应用程序成为DLL项目。

当我启用MASM时,我检查“构建自定义”中的'masm'框。之后,预期的项目属性>配置属性> Microsoft宏汇编程序菜单选项不会出现!

编译时,我得到'未解析的外部符号X',其中X是我写入.asm文件的标签。

我看着从原始二进制文件导出函数,但它看起来像你需要建立你的整个导出表......我宁可不要。

因此,简而言之,如何将ASM编译为64位Windows DLL? 也许有更好的办法可以做到这一点?

回答

0

我相信这个问题,不过我也没问得很好,是一个重复:

How to enable Assembly Language support in Visual Studio 2013

虽然,所选择的答案有没有解决我的问题。 ilovecpp的回答是的伎俩:

也许这将非常有用:

右键单击file_name.asm(在Solution Explorer) 属性 - >配置属性 - >常规 - >项目类型 选择微软宏汇编程序

一旦启用,一切都编译得很好。你可以将MASM编译成一个DLL,只需要一个额外的步骤。

0

您可以将您的汇编代码编译为一个静态库,然后创建一个本机C++ DLL,它将从汇编库中导出函数。

相关问题