Hey. Mam sprawę rodem z archiwum X :). Mam klasy Serwer i Połączenie (dla każdego nowego połączenia tworzony jest egzemplarz klasy Połączenie. Klasa Serwer ma listę tych obiektów w wektorze). W klasie Połączenie mam metodę send
template<class TMessage> void Connection::send(TMessage & message) { //TMessage to obiekt np typu Ping, Tekstowa itd.
QByteArray sendArray;
QDataStream out(&sendArray, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_1);
out << message; //serializacja
socket->write(sendArray); //wysylanie
socket->waitForBytesWritten();
}
Chodzi o to że gdy wywołam tę metodę z klasy Połączenie (Connection) to wszystko działa. Gdy natomiast wywołam ją z klasy Serwer (tak jak poniżej) to wywala błąd:
Ping ping;
clients[ID]->send(ping);
Server.obj:-1: błąd: LNK2019: unresolved external symbol "public: void __cdecl Connection::send<class Ping>(class Ping &)" (??$send@VPing@@@Connection@@QEAAXAEAVPing@@@Z) referenced in function "private: void __cdecl Server::sendClientOnlineList(short)" (?sendClientOnlineList@Server@@AEAAXF@Z)
Dodam że komunikacja Połączenie -> Serwer odbywa się za pomocą sygnałów i slotów (wysyłam sygnał z klasy Połączenie do slotu w klasie Serwer