Nicht auflösbares externes "Objekt"
-
Hallo an alle,
ich suche gerade eine Fehlerursache, die ich jedoch leider nicht finden kann und hoffe, dass mit hier einer helfen kann.
Ich nutze Embarcadero C++ Builder XE6.
In meiner Main.cpp steht:
#include "Main.h"
In meiner Main.h steht:
class TForm_Main : public TForm { __published: // Von der IDE verwaltete Komponenten [...] private: // Anwender-Deklarationen public: // Anwender-Deklarationen __fastcall TForm_Main(TComponent* Owner); static wchar_t* CharToWChar(const char* text); [...] }; //-------------------------------------------------------------------- static wchar_t* CharToWChar(const char* text) { size_t size = strlen(text) + 1; wchar_t* wa = new wchar_t[size]; mbstowcs(wa,text,size); return wa; } //--------------------------------------------------------------------------- extern PACKAGE TForm_Main *Form_Main; //--------------------------------------------------------------------------- #endif
Meines Erachtens müsste die Funtion CharToWChar somit überall bekannt sein, wo Main.h eingebunden ist.
In meiner Installationscenter.cpp steht auch
#include "Main.h"
und dennoch erhalte ich beim Kompilieren folgenden Fehler:
Error: Nicht auflösbares externes 'TForm_Main::CharToWChar(const char *)' referenziert von D:[...]\DEBUG_BUILD\INSTALLATIONSCENTER.OBJKann mir bitte einer auf die Sprünge helfen, was ich gerade übersehe und wo der Fehler liegen könnte?
Danke.
-
Du hast deine Klassenmethode CharToWChar nicht implementiert, denn die Funktion CharToWChar ausserhalb deiner Klasse in Main.h hat nix mit deiner Klasse TForm_Main zu tun.
Du musst also die CharToWChar noch implementieren, das gehört ausserdem in Main.cpp:
wchar_t* TForm_Main::CharToWChar(const char* text) { ..... }