我真的很困惑如何將枚舉類型傳遞給函數在c + +。 我使用谷歌搜索和測試所提供的所有溶劑,但他們沒有解決我的問題。 在SocketInfo.h, 我有一個名爲SocketType枚舉,全球聲明:通過枚舉函數在c + +
typedef enum SocketTypeEnum
{
SOCKET_TYPE_IPSEC
} SocketType;
在SocketInfo.hi
有一個名爲SocketInfo類:在SocketInfo.cpp
class SocketInfo
{
public:
SocketInfo(const char* ip,unsigned short fd,SocketType stype);
}
:
SocketInfo::SocketInfo(const char* ip, unsigned short fd,SocketType stype)
{
//some work done here
}
我建立這個類沒有任何錯誤
現在測試這個類我創建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;
}
上面的代碼運行後,我得到了這些錯誤的一個Win32控制檯:
錯誤4錯誤LNK2019:無法解析的外部符號「 public:__thiscall函數「void __cdecl Test_Socket(void)」(?Test_Socket @@ YAXXZ)中引用的SocketInfo :: SocketInfo(char const *,unsigned short,enum SocketTypeEnum)「(?? 0SocketInfo @@ QAE @ PBDGW4SocketTypeEnum @@@ Z) )
錯誤5錯誤LNK1120:1個未解決的外部問題
我該如何解決這些錯誤。
所有代碼在visual studio 2010 Ultimate上編譯。
謝謝陸,,問題解決了。 – 2012-04-02 13:11:07