Hallo,
ich habe eine asm Funktion, die ich aus einem C-Programm heraus aufrufen will. Für den C Code verwende ich Dev-Cpp, und für den asm Code masm.
Ich habe die asm .obj Datei unter Project Optionen->Parameter(Linker) angegeben, aber beim compilieren erhalte ich folgenden Fehler:
"[linker error] undifined reference to 'func(unsigned long)'"
Hier mal ein paar Codestücke:
Wäre nett wenn mir jemand helfen könnte.
(und es liegt soweit ich das überblicke nicht an den Unterstrichen)
Edit
k, habs selber gelöst.
Falls jemand das gleiche Problem hat, der Fehler lag im Prototyp der Funktion im C file.
Funktionieren tuts mit :
und
... es kommt auf das memory modell an (siehe hier)
ich habe eine asm Funktion, die ich aus einem C-Programm heraus aufrufen will. Für den C Code verwende ich Dev-Cpp, und für den asm Code masm.
Ich habe die asm .obj Datei unter Project Optionen->Parameter(Linker) angegeben, aber beim compilieren erhalte ich folgenden Fehler:
"[linker error] undifined reference to 'func(unsigned long)'"
Hier mal ein paar Codestücke:
Code:
_func proc public, param1:DWORD
...
_func ENDP
Code:
extern void func(DWORD);
...
func(1);
(und es liegt soweit ich das überblicke nicht an den Unterstrichen)
Edit

Falls jemand das gleiche Problem hat, der Fehler lag im Prototyp der Funktion im C file.
Funktionieren tuts mit :
Code:
extern "C" _stdcall void func(DWORD);
...
func(1);
Code:
.386
.MODEL FLAT,STDCALL
...
_func proc public, param1:DWORD
...
_func ENDP