彙編和C++函數互調

新建ASM文件 MyAsm.asm,內容如下

.386
.model flat,stdcall

CppFunc PROTO

.DATA
text db 'Hello'

.CODE
AsmFunc proc
	mov eax,10
	invoke CppFunc
	RETN
AsmFunc ENDP

END
在此ASM文件右鍵-屬性-常規:項類型:改爲自定義生成工具.然後再常規-命令行中設置編譯選項:ml /c MyAsm.asm,輸出:MyAsm.obj

C++文件中添加聲明外部函數

extern "C" int __stdcall AsmFunc();
添加彙編調用方法

extern "C" void __stdcall CPlusFunc();

void __stdcall CPlusFunc()
{
    MessageBox(NULL, _T("Hello,World"), _T("彙編調用C++函數"), MB_OK);
}

調用方法

int main()
{
    // C++和彙編互相調用
    int x = AsmFunc();
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章