検索したところ、__asm
Visual Studioのx64。代わりに、外部アセンブリファイルを使用する必要があります。
外部アセンブリファイルをwin32コンソールプロジェクトに追加するにはどうすればよいですか?
それらをどのようにコンパイルできますか?
ステップバイステップで説明できますか。
Visual Studioでx64アセンブリファイルを使用して混合ソースx64プロジェクトをビルドする方法:
1)Visual Studio(Community)2015を起動し、_FILE - New - Project
_を選択します。
2)次のウィンドウで_Win 32 Console Application
_を選択します。
3)確認が得られます。 _Next >
_をクリックします。
4)次のウィンドウで、デフォルト設定を受け入れます。 Finish
をクリックします。
5)ソリューションエクスプローラーでプロジェクトが強調表示されていることを確認し、メニューから_PROJECT - Build Customizations...
_を選択します。
6)次のウィンドウでmasm(.targets,.props)
にチェックマークを付け、OK
をクリックします。
7)_Build - Configuration Manager...
_を選択します
8)_Active solution platform
_をx64に変更します。
9)callee.asm:_PROJECT - Add New Item
_を作成します。
10)次のウィンドウでC++File(.cpp)
を選択し、-重要!-_.asm
_拡張子の付いた名前を付けます。 Add
をクリックします。
10)次に、_.asm
_ファイルに正しいプロパティがあるかどうかを確認します。ソリューションエクスプローラーでファイルを右クリックし、Properties
を選択します。
11)プロパティページには、少なくとも次のものが表示されます。
_Excluded From Build (empty) or No
Item Type Microsoft Macro Assembler
_
_Command Line
_の下で、_ml64.exe
_がアセンブラーとして選択されていることを確認します。
OK
をクリックします。
12)これで、ファイルにコンテンツを入力できます。
ConsoleApplication1.cpp:
_#include <iostream>
using namespace std;
extern "C" void hello_from_asm();
int main()
{
cout << "Hello from CPP" << endl;
hello_from_asm();
return 0;
}
_
callee.asm:
_PUBLIC hello_from_asm
EXTERN puts:PROC
.data
hello1 db "Hello from ASM.",0
.code
hello_from_asm PROC
Push rbp
mov rbp, rsp
sub rsp, 32 ; Shadow Space
and spl, -16 ; Align stack at 16
lea rcx, hello1
call puts
leave ; Restore stack (rsp) & frame pointer (rbp)
ret
hello_from_asm ENDP
END
_
13).exeをビルドします
そしてそれを実行する CTRL-F5。
アプリケーションが新しいウィンドウで開きます。