Avatar billede tgv Nybegynder
28. juli 2003 - 20:44 Der er 9 kommentarer og
1 løsning

C++ til C

Jeg er igang med at skrive et modul til Half-Life og er løbet ind i et problem. Noget af selve HL koden er C kode og mit modul er i c++ så jeg linker med:

extern "C" void PM_Move ( ..... );

Problemet er bare at compileren sætter en "_" foran fordi det nu linker til C kode. Er det en måde at slå dette fra?
Jeg bruger Microsoft Visual C++
Avatar billede arne_v Ekspert
28. juli 2003 - 20:56 #1
Det er normalt at sætte den _ foran.

Men prøv evt. med:

extern "C" WINAPI void PM_Move ( ..... );
Avatar billede arne_v Ekspert
28. juli 2003 - 21:00 #2
extern "C" void WINAPI PM_Move ( ..... );
Avatar billede tgv Nybegynder
28. juli 2003 - 21:08 #3
error C2537: 'WINAPI' : illegal linkage specification :(
Avatar billede arne_v Ekspert
28. juli 2003 - 21:18 #4
Lidt msytisk.

Følgende compielr hos mig:

#include <windows.h>

extern "C" void WINAPI f();

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

men får naturligvis:

z.obj : error LNK2001: unresolved external symbol _f@0
z.exe : fatal error LNK1120: 1 unresolved externals
Avatar billede tgv Nybegynder
28. juli 2003 - 21:30 #5
Hvorfor er det naturligt? Og hvad kan man gøre ved det? Det er nemlig præcis den fejl meddelelse der kommer når jeg compiler.
Avatar billede arne_v Ekspert
28. juli 2003 - 21:43 #6
Fordi jeg ikke linkede med noget der indeholdt den funktion.

I mit tilfælde fordi jeg ikke har lavet den.


I dit tilfælde kunne det værdi fordi du manglede at linke mod et
library.

Hvis det er tilfældet så kan det iøvrigt meget vel være at du ikke skal
bruge WINAPI.
Avatar billede arne_v Ekspert
28. juli 2003 - 21:44 #7
I VC++ 6.0 angives libraries i:

project
setings
link
Avatar billede tgv Nybegynder
30. juli 2003 - 13:25 #8
Jeg har opgivet at få det til at virke, det var heller ikke så vigtigt
Avatar billede segmose Nybegynder
30. juli 2003 - 13:47 #9
Ok, så svar på spørgsmålet og tag pointene selv, så vi kan få lukket.
Avatar billede tgv Nybegynder
31. juli 2003 - 13:57 #10
okay. i'll do.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester