Avatar billede fka_waldeinburg Nybegynder
31. maj 2002 - 23:51 Der er 5 kommentarer og
1 løsning

Unresolved External

Jeg får en "Unresolved external"-fejl når jeg linker mit program. Funktionerne burde findes i en dll-fil, som fulgte med SDK'et (der var kun 1 DLL-fil, så der er den rigtige, også ifølge dokumentationen). Jeg har brugt ImpLib.exe til at lave en lib-fil og linket lib-filen sammen med programmet som jeg har gjort det 1000 gange før med andre projekter. Hvad kan der være galt?

Jeg bruger følgende kommando:
C:\BCC55\Bin\ilink32.exe /Lc:\bcc55\lib;c:\bcc55\lib\psdk;c:\ifc\lib /aa C0W32.OBJ main.obj, test.exe,, IMPORT32.LIB ifc.lib CW32.LIB
Det er i ifc.lib, funktionerne burde være.
Avatar billede jpk Nybegynder
03. juni 2002 - 08:54 #1
Du har vel dobbelt-checket syntaxen?
Korrekt funktionsnavn (store/små bogstaver)

Får du fejlen ligemeget hvilken funktion fra dll'en du prøver at kalde, eller er det kun nogle bestemte?
Avatar billede laffe Nybegynder
03. juni 2002 - 13:38 #2
Jeg kender ikke så meget til Ccmmand compileren. Men samme fejl få man ogsp i IDE miljøet, hvis man ikke husker at "Add'e" .lib filerne explicit til projektet.
Avatar billede fka_waldeinburg Nybegynder
03. juni 2002 - 16:59 #3
Jeg stillede det samme spørgsmål til nyhedsgruppen dk.edb.programmering.c og har fået svar (posten hedder "En uventet Unresolved External). Desværre eksperter, I er for langsomme.
Nuvel, problemet er, at jeg bruger Borlands compiler og DLL'en er compilet i Visual C++. Det har hidtil ikke voldt problemer, fordi de andre DLL'er, jeg har brugt, har være med rene C-funktioner (f.eks. DirectX SDK). IFC SDK er opbygget med klasser, og her er der forskel i Microsofts og Borlands navngivning, fordi der ikke er nogen standard på dette område (på den anden side: hvis der var en standard, ville Microsoft så følge den? Nå, nok om det).
Følgende links har nogle ikke helt nemme løsninger, som alle kræver, at man er i besiddelse af Visual C++:
http://bcbdev.com/articles/vcdll2.htm
Intel C++ kan også bruges ifølge et af svarene på nyhedsgruppen.
Avatar billede jpk Nybegynder
04. juni 2002 - 08:06 #4
Godt du fik løst dit problem!

Lige et par enkelte kommentarer...
Jeg er ked af at du synes der er for langsom respons, jeg mener faktisk at du godt kunne have kommenteret mit indlæg, for at give os noget at arbejde videre med...

At anvende DirectX SDK er absolut ikke at bruge "rene C-funktioner", tværtimod! Hvis du vil anvende std funktioner, behøver du jo ikke nogle yderligere SDK's.
DirectX er COM libs udviklet af MS og kan kun anvendes på enkelte platforme, såsom Windows & xBOX. Standard C/C++ er platformuafhængigt.
Avatar billede fka_waldeinburg Nybegynder
04. juni 2002 - 21:04 #5
Dit indlæg kom lidt efter, jeg havde fået svar.
OK, det var måske lidt hårdt sagt mod eksperterne. Jeg tager mine ord i mig igen.
Når jeg siger rene C-funktioner, mener jeg bare, at det ikke er klasser. COM er C-kombitabelt (jaja, kun i Windows. I ved, hvad jeg mener).
Avatar billede fka_waldeinburg Nybegynder
04. juni 2002 - 21:05 #6
"Dit indlæg kom lidt efter, jeg havde fået svar."
Okay, måske ikke lige den rette formulering: efter at jeg havde løst problemet, selvfølgelig :)
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