新建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;
}