我的一个com服务器已经做好,为了在客户端使用com接口,我在stdafx.h(基于对话框的MFC工程)中添加了两句:#include "LibManagerServer.h"
#include "LibManagerServer_i.c"
.....
我在客户端有两个对话框类中要使用接口,并且这些文件都包含了stdafx.h,但是编译过程出现这样的错误:
StdAfx.obj : error LNK2005: _CLSID_LibMng already defined in CreateUserDLG.obj
StdAfx.obj : error LNK2005: _IID_ILibMng already defined in CreateUserDLG.obj
ValidateUserDLG.obj : error LNK2005: _CLSID_LibMng already defined in CreateUserDLG.obj
ValidateUserDLG.obj : error LNK2005: _IID_ILibMng already defined in CreateUserDLG.obj
Debug/TestCli.exe : fatal error LNK1169: one or more multiply defined symbols found
....
我在两个对话框类的,cpp文件中分别加上#include "LibManagerServer.h"
#include "LibManagerServer_i.c"
也不行……
谁知道怎么使用这些头文件才能使整个程序都能使用com接口,而且不发生重复定义的错误啊?
#include "LibManagerServer_i.c"
.....
我在客户端有两个对话框类中要使用接口,并且这些文件都包含了stdafx.h,但是编译过程出现这样的错误:
StdAfx.obj : error LNK2005: _CLSID_LibMng already defined in CreateUserDLG.obj
StdAfx.obj : error LNK2005: _IID_ILibMng already defined in CreateUserDLG.obj
ValidateUserDLG.obj : error LNK2005: _CLSID_LibMng already defined in CreateUserDLG.obj
ValidateUserDLG.obj : error LNK2005: _IID_ILibMng already defined in CreateUserDLG.obj
Debug/TestCli.exe : fatal error LNK1169: one or more multiply defined symbols found
....
我在两个对话框类的,cpp文件中分别加上#include "LibManagerServer.h"
#include "LibManagerServer_i.c"
也不行……
谁知道怎么使用这些头文件才能使整个程序都能使用com接口,而且不发生重复定义的错误啊?
rebuild all
不行啊,我早都试验过了
#define _MY_COM_TEST1
#include "..."
....
#endif
可以保证只被include一次
#include "LibManagerServer_i.c"
放到
StdAfx.cpp
文件中去,去掉其他文件中的这句
#include "LibManagerServer_i.c"放到cpp