Linking C with Assembly in Visual Studio Ich habe das schon gesehen, aber das enthält keine hilfreichen Informationen.MASM64, Visual Studio 2015 C-Programm mit Assembly-Funktion in separater Datei
Ich habe ein C-Programm, in dem ich Funktion in Assembly geschrieben bin. Ich fun.h Header in C-Datei mit der Deklaration, und habe fun.asm mit der Implementierung. Es wurde zuerst mit NASM geschrieben, und es gibt ein global
Schlüsselwort. Wie kann ich den gleichen richtigen Verknüpfungseffekt in MASM erzielen?
Minimal Beispiel:
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
'PUBLIC' Schlüsselwort statt' GLOBAL' –
Wenn ich public verwende, habe ich einen externen Symbolfehler – formateu
Ah, wahrscheinlich weil die Windows _C_ Aufrufkonvention einen führenden Unterstrich erwartet. Also, wenn Sie eine Funktion namens 'myfun' haben, benennen Sie sie' _myfun' um und verwenden Sie 'PUBLIC _myfun' –