Bonjour !

C::B me sort ces erreurs:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
||=== Client, Debug ===|
obj\Debug\Session.o:D:\C++\projects\Client\Session.cpp|60|undefined reference to `unsigned short PacketReader::Read<unsigned short>()'|
obj\Debug\Threads.o:D:\C++\projects\Client\Threads.cpp|19|undefined reference to `CreateSDLUserEvent(int, int, int)'|
||=== Build finished: 2 errors, 0 warnings ===|
L'erreur doit etre probablement bénine, mais bon, c'est souvent pour ca qu'o arrive pas a les resoudres

Voici l'appel dans Session.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#include "Session.h"
/* plus de code ici */
void Session::ReceivePacket()
{
    ReceiveData(_packetlen);
    _pr = PacketReader();
    _pr.Packet(_buffer, _packetlen);
    _header = _pr.Read<uint16_t>();
    if(headers[_header] != NULL)
    {
        headers[_header]((_pr));
    }
}
Dans Session.h, il y a:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
#include "PacketReader.h"
// d'autres trucs
map<uint16_t, void (*)(PacketReader &)> headers;
PacketReader _pr;
 
unsigned char* _buffer;
Dans PacketReader.h il y a:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
class PacketReader
{
    public:
        PacketReader();
        void Packet(unsigned char * pbuffer, int len);
        virtual ~PacketReader();
 
        template <typename T>
        T Read();
 
        unsigned char * buffer;
        int pos, length;
    protected:
    private:
};

Etrangement, j'ai un deuxieme problem dans Threads.cpp

_buf = CreateSDLUserEvent(code, arg1, arg2);

Alors que dans le .h, j'inclus le fichier ou il y a cette fonction...

J'ai tenté ctrl+f11, ne marche pas.
J'ai tenté de supprimer du projet les fichiers, et de le re-ajouter, ne marche pas non plus.

Que faut-il faire?
merci, nico