Pointer auf eine Methode( mit Templates
-
Servus,
ich will mit Templates in einer Klasse( cPointer ),einen Pointer auf irgendein Object ( Test ), der Klasse ( cTest ) und einer Methode dieser Klasse ( cTest::DoSomething ) zeigen. Und dann mit der Methode ( cPointer::Do() ) will ich die Methode ( cTest::DoSomething ) aufrufen.Dazu habe ich diesen Code geschrieben :
Die Klasse cTest
class cTest { public: void DoSomething() { } };Die Klasse cPointer
template<class Class> class cPointer { private: Class* Object; void(Class::*Method)(void); public: cPointer( Class* Object, void(Class::*Method)(void)) { this->Method = Method; this->Object = Object; } void Do() { (this->Object->*this->Method)(); } };Und die Main-Funktion
int main() { cTest Test; cPointer<cTest> Pointer( &Test, &cTest::DoSomething ); Pointer.Do(); }Aber ich bekomm immer die Fehlermeldung
Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion "___tmainCRTStartup". MSVCRTD.lib
Fehler 2 fatal error LNK1120: 1 nicht aufgelöste externe Verweise. C:\Programmierung\C++\Projects\Test\Debug\Test.exe 1Wisst ihr vll. woran das liegt, bzw ich mein Problem lösen könnte ?
Vielen Dank schonmal im Voraus
MfG Icon
-
Probier mal tchar.h zu includieren und die korrekte main Signatur für Windows Projekte zu verwenden.
Oder Du kannst dein Projekt auch Console umstellen.
Simon
-
Nusso schrieb:
...
Aber ich bekomm immer die FehlermeldungFehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion "___tmainCRTStartup". MSVCRTD.lib
Fehler 2 fatal error LNK1120: 1 nicht aufgelöste externe Verweise. C:\Programmierung\C++\Projects\Test\Debug\Test.exe 1...
Ich weiß nur, dass das nichts mit Deinem Quellcode selbst zu tun hat, sondern ein Problem mit Deiner Entwicklungsumgebung.
Es sieht so aus als hättest Du nicht klar, ob Du ein "Fensterprogramm" bauen möchtest oder nicht....
Du kannst erstmal mit einem hello-world-Programm experimentieren.Gruß,
Simon2.
-
Ohh Ok thx, ich dachte ich hatte Konsolenanwendung ->LeeresProjekt angeklickt,
aber Danke