vs2022?x64?C/C++和匯編混編(案例代碼)
更新時間:2023年02月24日 15:47:56 作者:千年恨
這篇文章主要介紹了vs2022?x64?C/C++和匯編混編,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
vs2022環(huán)境x64 C/C++和匯編混編
vs64位程序不支持__asm內(nèi)嵌匯編,需要單獨編寫匯編源文件
示例如下
1、新建空的win32項目,新建main.cpp,示例代碼如下
#include <Windows.h>
extern "C" void __stdcall asm_func(const char* lpText);
extern "C" UINT GetMsgBoxType()
{
return MB_YESNOCANCEL;
}
int main()
{
asm_func("Hello world!");
return 0;
}2、新建asm64.asm匯編源文件,示例代碼如下
.data msgCaption db 'Message box text',0 .code align 16 extern GetMsgBoxType : proc extern MessageBoxA : proc extern __imp_MessageBoxA : qword asm_func proc ; RCX = address for the string for the message box sub rsp, 28h ; shadow stack only [n]8 size lea rdx, [msgCaption] mov r8, rcx call GetMsgBoxType mov r9, rax xor rcx, rcx ;call [__imp_MessageBoxA] call MessageBoxA add rsp, 28h ; restoring shadow stack ret asm_func endp end
3、編譯器配置,選擇x64,debug或者release都可以,
3.1 右鍵項目 --> 生成依賴項 --> 生成自定義 --> 勾選masm


3.2 右鍵匯編源文件 --> 屬性 --> 常規(guī) --> 項類型 --> Microsoft Macro Assembier


4、直接生成即可

到此這篇關(guān)于vs2022 x64 C/C++和匯編混編的文章就介紹到這了,更多相關(guān)vs2022 x64 匯編內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
visual?studio?2022?編譯出來的文件被刪除并監(jiān)視目錄中的文件變更(示例詳解)
這篇文章主要介紹了visual?studio?2022?編譯出來的文件被刪除?并監(jiān)視目錄中的文件變更,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08

