Avatar billede thjal Nybegynder
09. juli 2003 - 11:34 Der er 10 kommentarer og
1 løsning

konvertering fra VC++6.0 til .NET (VC++7.0)

jeg har konveteret et .dll projekt fra VC++6.0 til VS.NET. Projektet virker fint under VC++6.0 men nu har jeg brug for at få det konverteret til VS.NET, dette giver mig en følgende linker error:

DllOne error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall CItemMissing::CItemMissing(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >,class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >,int)" (__imp_??0CItemMissing@@QAE@V?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@0H@Z) referenced in function _CompConcEdge@8

Det ser mig lidt voldsomt ud men det der undre mig er at jeg ikke har nogen funktion der hedder _CompConcEdge@8 (eller reference for den sags skyld).

Er der nogen der har stødt på noget der ligner og som har fundet en løsning?
Avatar billede segmose Nybegynder
09. juli 2003 - 11:49 #1
_CompConcEdge@8 ligger sikkert i en header fil, men du mangler nok at linke til en passende .lib i din build, det må så være CItemMissing constructor der mangler.
Avatar billede arne_v Ekspert
09. juli 2003 - 12:00 #2
Funktionen hedder kun CompConcEdge og har 2 argumenter.
Avatar billede thjal Nybegynder
09. juli 2003 - 12:03 #3
arne v, ja det er rigtig jeg har en funktion (det er faktisk en method, men lad nu det ligge), der hedder CompConcEdge og har 2 argumnenter - men hvad er problemet med den? Det jeg ikke forstå er at den nøjagtigt samme applikation virker fint under 6.0!?
Avatar billede arne_v Ekspert
09. juli 2003 - 12:14 #4
Linkeren leder efter en funktion ikke en method med det navn.

Jeg kender ikke VC++ 7.0 godt nok til at kunne komme med et bud
på hvad der er gået galt 6.0 -> 7.0.
Avatar billede segmose Nybegynder
09. juli 2003 - 14:33 #5
I CompConcEdge ( referenced in function _CompConcEdge@8) findes et kald der bruger CItemMissing  constructor (CItemMissing::CItemMissing) men som der ikke kan linkes til (unresolved external symbol), find headeren hvor CItemMissing er defineret og tilføj dens tilsvarende lib, brug evt. search under hjælp for at finde disse.
Avatar billede thjal Nybegynder
09. juli 2003 - 15:44 #6
hmm! Jeg har nu rodet lidt rundt med applikationen og ændret på et linket .lib men nu kommer jeg frem til følgende fejlmeddelse: DllOne fatal error LNK1104: cannot open file 'mfc42.lib'
Det der nu er RIGTIGT mærkeligt er at jeg INGEN steder referere til denne fil!
nogen gode ideer? (husk at jeg desværre er blevet presset over i .NET :P )
Avatar billede arne_v Ekspert
09. juli 2003 - 15:51 #7
Du skal ikke bruger ret meget for at få brug for mfc lib.

Jeg tror at det er nok at bruge CString !
Avatar billede thjal Nybegynder
10. juli 2003 - 08:08 #8
arne v, der kan jeg jo kun være enig med dig, men hvordan kan det være at linkeren prøver at linke til filen når jeg ikke har sat nogen reference til den?
Avatar billede websmith Nybegynder
10. juli 2003 - 08:13 #9
Alternativt, så kunne det jo være at thjal skulle kigge på nogle af DOT NET klasserne, istedet for at linke til de gamle VC++ 6 klasser/libs.
Avatar billede arne_v Ekspert
10. juli 2003 - 08:34 #10
Nu har du jo porteret et 6 projekt. Du tror ikke at mfc42.lib er nævnt
i en makefile ?
Avatar billede thjal Nybegynder
03. oktober 2005 - 17:35 #11
Fant selv løsningen - kan ikke sige hvad den er da det er så forbandet lang tid siden jeg har gjort det...
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