程序如下:
socket.h
-------------------------
namespace NetWork
{
//消息
UINT SOCKET_USER_ERROR = WM_USER + 100;
UINT SOCKET_USER_RECEIVE_TEXT = WM_USER + 101;class Socket : public CSocket
{
...
};
}ListenSocket.h
-------------------------
#include "Socket.h"
namespace NetWork
{class ListenSocket : public CSocket
{
...
};
}编译器报错如下:
Socket.obj : error LNK2005: "unsigned int NetWork::SOCKET_USER_RECEIVE_TEXT" (?SOCKET_USER_RECEIVE_TEXT@NetWork@@3IA) already defined in ListenSocket.obj
Socket.obj : error LNK2005: "unsigned int NetWork::SOCKET_USER_ERROR" (?SOCKET_USER_ERROR@NetWork@@3IA) already defined in ListenSocket.obj
Debug/SocketClass.exe : fatal error LNK1169: one or more multiply defined symbols found请问是怎么回事情?该如何解决呢?谢谢!
socket.h
-------------------------
namespace NetWork
{
//消息
UINT SOCKET_USER_ERROR = WM_USER + 100;
UINT SOCKET_USER_RECEIVE_TEXT = WM_USER + 101;class Socket : public CSocket
{
...
};
}ListenSocket.h
-------------------------
#include "Socket.h"
namespace NetWork
{class ListenSocket : public CSocket
{
...
};
}编译器报错如下:
Socket.obj : error LNK2005: "unsigned int NetWork::SOCKET_USER_RECEIVE_TEXT" (?SOCKET_USER_RECEIVE_TEXT@NetWork@@3IA) already defined in ListenSocket.obj
Socket.obj : error LNK2005: "unsigned int NetWork::SOCKET_USER_ERROR" (?SOCKET_USER_ERROR@NetWork@@3IA) already defined in ListenSocket.obj
Debug/SocketClass.exe : fatal error LNK1169: one or more multiply defined symbols found请问是怎么回事情?该如何解决呢?谢谢!
解决方案 »
- m_ctrlComm.SetInputModel(1); 发生的错误
- 那些跨进程控制同步的对象的小问题
- 两台机器传输大文件,除了局域网,还有什么别的接线模式?主要不想接局域网为了防病毒
- VC6.0对话框如何用png图做背景
- 模态对话框调用模态对话框的问题
- 进程之间的通讯问题???
- 我能下载的都试验过,没有可用的JDK和tomcat!!怎么办?请各位大吓帮忙!
- vc中怎么访问远端数据库?
- 各位做图像处理的大家大伙们,请问哪里有snake 的算法可以下载?或者文章,多多给分
- ActiveX控件和串口通讯的问题
- 请问vector的类库名是什么?
- 怎么将网页的图片保存下来?好像IHTMLimgXXXX系列接口都没有这个功能。
包含2次就重复定义了写在CPP里
BEGIN_MESSAGE_MAP(CSocketClassDlg, CDialog)
//{{AFX_MSG_MAP(CSocketClassDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_MESSAGE(SOCKET_USER_ERROR, OnSocketError)
END_MESSAGE_MAP()
那么在CSocketClassDlg.cpp中需要重复声明,
extern SOCKET_USER_ERROR = WM_USER + 100;
extern SOCKET_USER_RECEIVE_TEXT = WM_USER + 101;
请问有什么好的办法不重复声明,就可以使用吗?并且不破坏程序框架?