Ich bin wirklich verwirrend darüber, wie ein Enum-Typ an eine Funktion in C++ übergeben. Ich google und teste alle vorgestellten Lösungen, aber keine von ihnen löst mein Problem. im SocketInfo.h, ich habe eine Enumeration namens socket, die global deklariert als:übergeben Enumeration in C++
typedef enum SocketTypeEnum
{
SOCKET_TYPE_IPSEC
} SocketType;
im SocketInfo.hi haben eine Klasse namens SocketInfo:
class SocketInfo
{
public:
SocketInfo(const char* ip,unsigned short fd,SocketType stype);
}
im SocketInfo.cpp:
SocketInfo::SocketInfo(const char* ip, unsigned short fd,SocketType stype)
{
//some work done here
}
i bauen diese Klasse ohne Fehler
jetzt Test diese Klasse mache ich eigentlich eine win32 Konsole application.in der _tmain ich diesen Code zu schreiben
#include "SocketInfo.h"
void Test_Socket()
{
SocketInfo* si = new SocketInfo(NULL,5060,SOCKET_TYPE_IPSEC);
}
int _tmain(int argc, _TCHAR* argv[])
{
Test_Socket();
getch();
return 0;
}
nach oben Code ausgeführt ich diese Fehler bekam:
Fehler 4 Fehler LNK2019: nicht aufgelöstes externes Symbol " public: __thiscall SocketInfo :: SocketInfo (char const *, unsigned short, enum SocketTypeEnum) "(?? 0SocketInfo @@ QAE @ PBDGW4SocketTypeEnum @@@ Z) referenziert in der Funktion" void __cdecl Test_Socket (void) "(? Test_Socket @@ YAXXZ)
Fehler 5 Fehler LNK1120: 1 nicht aufgelöste externe
wie kann ich diese Fehler beheben.
alle Codes kompilieren auf Visual Studio 2010 Ultimate.
Danke Luchian, Problem gelöst. –