Я действительно запутался в том, как передать тип перечисления функции в C++. Я googling и проверить все представленные soloutions, но не из них решить мою проблему. в SocketInfo.h, у меня есть перечисление с именем SocketType, что объявленное во всем мире как:pass Перечисление для функции в C++
typedef enum SocketTypeEnum
{
SOCKET_TYPE_IPSEC
} SocketType;
в SocketInfo.hi есть класс с именем SocketInfo:
class SocketInfo
{
public:
SocketInfo(const char* ip,unsigned short fd,SocketType stype);
}
в SocketInfo.cpp:
SocketInfo::SocketInfo(const char* ip, unsigned short fd,SocketType stype)
{
//some work done here
}
я построить этот класс без каких-либо ошибок
теперь для испытаний этот класс я создать win32 консоль application.in в _tmain я пишу этот код
#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;
}
после запуска выше кода я получил эти ошибки:
Ошибка 4 Ошибка LNK2019: неразрешенный внешний символ " public: __thiscall SocketInfo :: SocketInfo (char const *, unsigned short, enum SocketTypeEnum) "(? 0SocketInfo @@ QAE @ PBDGW4SocketTypeEnum @@@ Z) ссылка на функцию" void __cdecl Test_Socket (void) "(? Test_Socket @@ YAXXZ)
Ошибка 5 error LNK1120: 1 нерешенных внешних
как я могу решить эти ошибки.
все коды составлены на визуальной студии 2010 Ultimate.
Спасибо Лучиан, проблема решена. –