2016-06-19 18 views
0

Linking C with Assembly in Visual Studio 我已經看到,但沒有包含任何有用的信息。MASM64,Visual studio 2015 C程序與彙編函數在單獨的文件

我有一個C程序,其中我正在使用匯編編寫的函數。 我在聲明的C文件中包含了fun.h頭文件,並且在實現中使用了fun.asm。 它首先使用NASM編寫,並且有一個global關鍵字。我如何才能在MASM中實現相同的正確鏈接效果?

小例子:

的main.c:

int main() 
{ 
    f(); 
    return 0; 
} 

FH:

void f(); 

f.asm:

.DATA 
_05 DQ 0.5 
_PI DQ 3.14159265358979323846264338327 

    .CODE 
public _f 
_f PROC 
_f ENDP 
    END 
+0

'PUBLIC'關鍵字而不是'GLOBAL' –

+0

當我使用public時,我有無法解析的外部符號錯誤 – formateu

+0

啊,可能是因爲Windows _C_調用約定期望有一個前導下劃線。所以,如果你有一個名爲'myfun'的函數,將它重命名爲'_myfun',並使用'PUBLIC_myfun' –

回答

0

根據邁克爾·佩奇在評論中寫道: 搜索關鍵字是PUBLIC,而在x86_64中,PROC函數不需要下劃線。