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、直接生成即可
到此這篇關于vs2022 x64 C/C++和匯編混編的文章就介紹到這了,更多相關vs2022 x64 匯編內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C語言實現(xiàn)兩個遞減數(shù)列中尋找某一個數(shù)
這篇文章主要介紹了C語言實現(xiàn)兩個遞減數(shù)列中尋找某一個數(shù),是一類經(jīng)典的數(shù)組操作算法,需要的朋友可以參考下2014-09-09