S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

#include Error

Posted on 2010-06-17 12:09 S.l.e!ep.¢% 阅读(602) 评论(0)  编辑 收藏 引用 所属分类: ICE
加入 #include <IceSSL/Plugin.h> 后出现
    error C2011: 'fd_set' : 'struct' type redefinition ......

google找到相关的解决方案

#if !defined(NDEBUG) && !defined(_STLP_DEBUG)
# define _STLP_DEBUG
#endif

#ifndef _WIN32_WINNT
#   define _WIN32_WINNT 
0x400
#endif

#include 
<winsock2.h>
#include 
<Ice/Ice.h>
#include 
<IceSSL/Plugin.h>

#include 
<stdlib.h>
#include 
<stdio.h>

#pragma comment(lib, 
"Iced.lib")
#pragma comment(lib, 
"IceUtild.lib")


使用前,先要进行如下设置:

添加/GR编译选项 Enable C++ RTTI。
添加ice的include、 StlPort的include、ice的lib路径,并将这些路径提到最前,以免与VC的冲突。
为Link Object/Library modles 加上iced.lib iceutild.lib 。



1、编译中出现
Linking
LINK : fatal error LNK1104: cannot open file 
"stlport_vc6_static.lib"
Error executing link.exe.

解决办法:
Porject->Setting->C++->CodeGeneration 设置Use Run-time library=Debug Multithreaded DLL


2、编译中出现
 
warning C4005: '_STLP_DEBUG_CHECK' : macro redefinition

解 决办法:在包含ice/ice.h之前添加以下代码
#if !defined(NDEBUG) && !defined(_STLP_DEBUG)
# define _STLP_DEBUG
#endif



3、 编译中出现
error C2065: 'TryEnterCriticalSection' : undeclared identifier

解 决办法:
在stdafx.h中,加上
#ifndef _WIN32_WINNT
#   define _WIN32_WINNT 
0x400
#endif


4、 编译中出现
error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall IceUtil::GCRecMutexInit::GCRecMutexInit(void)" (__imp_??0GCRecMutexInit@IceUtil@@QAE@XZ)
error LNK2001: unresolved external symbol 
"__declspec(dllimport) public: __thiscall IceUtil::GCRecMutexInit::~GCRecMutexInit(void)" (__imp_??1GCRecMutexInit@IceUtil@@QAE@XZ)
D

解决办法:
Porject->Setting->Link-> Object/Library modles:加上iced.lib iceutild.lib

5、编译中出现
error C2061: syntax error : identifier 'SC_HANDLE'
error C2061: syntax error : identifier 
'SERVICE_STATUS'
error C2146: syntax error : missing 
';' before identifier '_statusHandle'
error C2501: 
'SERVICE_STATUS_HANDLE' : missing storage-class or type specifiers
error C2501: 
'_statusHandle' : missing storage-class or type specifiers
error C2146: syntax error : missing 
';' before identifier '_status'
error C2501: 
'SERVICE_STATUS' : missing storage-class or type specifiers
error C2501: 
'_status' : missing storage-class or type specifiers

解 决办法:
在stdafx.h或其他文件中增加
#include  <WINSVC.H>


作 者:李珍宝(http://zhenbaodao51.51.net ,http://www.lizhenbao.com , http://www.cnitblog.com/lizhenbao/ ), 转载请注明出处
完。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理