2016-06-19 7 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

'GLOBAL'보다는'PUBLIC' 키워드 –

+0

public을 사용할 때 해결되지 않은 외부 기호 오류 – formateu

+0

가 있습니다. 아마도 Windows _C_ 호출 규칙에서 맨 앞에 밑줄이 오기 때문입니다. 그래서'myfun'이라는 함수가 있다면'_myfun'으로 이름을 바꾸고'PUBLIC _myfun'을 사용하십시오 –

답변

0

마이클 페치 코멘트에 쓴 내용에 따라 : 검색된 키워드는 PUBLIC이고 x86_64에서는 PROC 함수에 밑줄이 필요하지 않습니다.