只要在属性-连接器-输入-附加依赖项,加入须要的obj便可连接进去,支持通配符,如:f:\dir\*.objc++
汇编中的变量常量须要用public列出来,函数不须要,由于直接就是public的,直接能够经过extern ... (c++用extern "C" ... )进行调用。api
x64的经过 extern fn:proc 便可调用c或其它obj的fn,好比:函数
;hello64.asm extrn MessageBoxA : proc extrn ExitProcess : proc .data text db 'Hello world!', 0 caption db 'Message', 0 .code main proc frame sub rsp, 28h .allocstack 28h .endprolog xor r9, r9 ;MB_OK lea r8, caption ;lpCaption lea rdx, text ;lpText xor rcx, rcx ;hWnd call MessageBoxA xor rcx, rcx call ExitProcess add rsp, 28h main endp end
x86的经过 fn proto便可调用c或其它obj的fn,若是是api,要加stdcall,和后面的原型,好比:code
;hello32.asm .386 .model flat MessageBoxA proto stdcall hwnd:dword, text:dword, caption:dword, buttons:dword ExitProcess proto stdcall exitcode:dword ;实际上这里的原型有的能够随意填,有的却必须保持一致,大概有overload,好比下面(GetProcAddress GetCurrentProcess 这两个就必须跟原型一致): GetModuleHandleW proto stdcall void:dword DeleteCriticalSection proto stdcall void:dword InitializeCriticalSection proto stdcall void:dword EnterCriticalSection proto stdcall void:dword LeaveCriticalSection proto stdcall void:dword GetSystemInfo proto stdcall void:dword GetProcAddress proto stdcall handle:dword,procname:dword GetCurrentProcess proto stdcall .data text db 'Hello world!', 0 caption db 'Message', 0 .code main proc push 0 ;MB_OK push offset caption ;lpCaption push offset text ;lpText push 0 ;hWnd call MessageBoxA push 0 call ExitProcess main endp end