2016-02-25 49 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,它將從彙編庫中導出函數。

相關問題