//class __declspec(dllexport) std::string defaultIp;
//template typename __declspec(dllexport) std::string;
class _declspec(dllexport) ClientSocket: public BaseSocket
{
private:
DataManage * dataManage;
bool hasConnect;
void init(DataManage*);
public:
static std::string defaultIp;
...
};
提示:
1> dllmain.cpp
1>g:\temp\iocp_tcp_socket_encapsulation\v02_iocp_tcp_socket_encapsulation\encapsulation\encapsulation\clientsocket.h(33): warning C4251: “ClientSocket::defaultIp”: class“std::basic_string<_Elem,_Traits,_Ax>”需要有 dll 接口由 class“ClientSocket”的客户端使用
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
template class __declspec(dllexport) std::vector <BaseSocket>;
class _declspec(dllexport) IocpServerSocket: public ServerSocket
{
private:
HANDLE completionPort; // 完成端口的句柄
std::vector <BaseSocket> * clientGroup; // 创建客户端组
...
}
提示:
1> g:\temp\iocp_tcp_socket_encapsulation\v02_iocp_tcp_socket_encapsulation\encapsulation\encapsulation\iocpserversocket.h(26): 参见对正在编译的类 模板 实例化“std::vector<_Ty>”的引用
1> with
1> [
1> _Ty=BaseSocket
1> ]
1> ClientSocket.cpp
1>g:\temp\iocp_tcp_socket_encapsulation\v02_iocp_tcp_socket_encapsulation\encapsulation\encapsulation\clientsocket.h(33): warning C4251: “ClientSocket::defaultIp”: class“std::basic_string<_Elem,_Traits,_Ax>”需要有 dll 接口由 class“ClientSocket”的客户端使用
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
按照网上所说的方法加上 template class __declspec(dllexport) std::vector <BaseSocket>; 还是不起作用~
这问题该怎么解决呢?
PS: 这天可能断网,只能用手机上网,可能周一才能结帖~ 不过会用手机留意信息~