[VC/MFC7] COleDateTime::Format() geeft LNK2019

Pagina: 1
Acties:

  • Markieman
  • Registratie: December 2001
  • Laatst online: 29-04 18:15
Ik ben dus bezig in een MFC project vc++. Dit project heb ik ooit gestart in VC++ 6, maar ik
ben al heel snel overgegaan op VC++ .NET. Ik maakt echter geen gebruik van .NET, het project
is uitsluitend gebaseerd op MFC7.

Nu wilde ik voor de datum/tijd gebruik gaan maken van het COleDateTime object.
Dit ging goed totdat ik de Format() functie wilde gebruiken, deze gaf namelijk een LNK2019 error.

Hieronder is mijn stukje code:

code:
1
2
3
COleDateTime tmp;
tmp.ParseDateTime(rvie->lpszText);
tmp.Format();


Dit geeft dus de volgende foutmelding:
code:
1
2
test.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >(unsigned short const *)" (__imp_??0?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@QAE@PBG@Z) referenced in function "public: class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > > __thiscall ATL::COleDateTime::Format(unsigned long,unsigned long)const " (?Format@COleDateTime@ATL@@QBE?AV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@2@KK@Z)
..\Binaries\Debug\Normal/foo.exe : fatal error LNK1120: 1 unresolved externals

Uiteraard heb ik gezocht in de MSDN help en op internet en got. Ik heb alleen maar een bericht op een forum kunnen vinden met een vergelijkbaar probleem, maar geen reacties...

Misschien dat iemand dit probleem bekent voorkomt en mij in de goede richting kan duwen?

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

dit betekent dat je linker een .lib bestand niet vindt.

je moet dus uitzoeken in de MSDN waarin de klasse COleDateTime zit, en die dan meelinken.

ik zie net de fout:
er bestaat geen Format() zonder argumenten:
http://msdn.microsoft.com...edatetime.3a3a.format.asp

daardoor denkt de compiler dat de implementatie nog volgt, waarna de linker die implementatie niet vindt.
dus gewoon de juiste functie gebruiken en je bent klaar.

[ Voor 54% gewijzigd door H!GHGuY op 07-10-2005 21:22 ]

ASSUME makes an ASS out of U and ME


  • Markieman
  • Registratie: December 2001
  • Laatst online: 29-04 18:15
HIGHGuY, dank je voor je input, maar dat was niet het probleem. Format() werkt gewoon met argumenten.

Intussen heb ik de oplossing al gevonden, het lag in het feit dat de Format() functie van COleDateTime gebruikt maakt van CStringT. Deze zijn sinds v7 van MFC in de vorm van Templates geimplementeerd. En dat gaat helaas niet altijd goed.

Meer info (de oplossing) voor mensen met hetzelfde probleem: KB309801

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.