C++builder升级问题

 

编译报 CRITICAL_SECTION 没找到 错误

在 _MTDeque.h 中的文件中加入

#include <Classes.hpp>

 

 

 

BCB 6 中按「Project/Options」,點選「Directories/Conditionals」,在「Conditional defines」欄位中加入

「_WINSOCKAPI_」字串(如果己經有其他的定義,請放前面,並以分號隔開),最後按「OK」,然後重新編譯

 


在 winsock.hpp   ($BCB)Include\vcl\\

//-- user supplied -----------------------------------------------------------
//xcm
#include <winsock2.h>   //包含winsock2.h头文件
#include <winsock.h>

 

  

当有以下错误

undefined symbol 'SO_SYNCHRONOUS_NONALERT'
undefined symbol 'SO_OPENTYPE'

 

#define SO_OPENTYPE 0x7008   
#define SO_SYNCHRONOUS_ALERT 0x10
#define SO_SYNCHRONOUS_NONALERT 0x20


 

Multiple declaration fd_set

 

以下为转(http://blog.sina.com.cn/s/blog_624277840100motb.html)

在#include<windows.h>之前 #include <winsock2.h> 问题就可以解决

如下

#ifndef _INC_WINDOWS
#include <winsock2.h>
#include <windows.h>
#endif /* _INC_WINDOWS */

 

[原因分析]
   主要原因是因为<windows.h>中包含了<winsock.h>头文件,由于其版
本的不同,导致出现上述的错误。<windows.h>中相关代码如下:
               #ifndef WIN32_LEAN_AND_MEAN
               #include <cderr.h>
               #include <dde.h>
               #include <ddeml.h>
               ........
                #ifndef _MAC
               #include <winperf.h>
               #include <winsock.h>
               #endif
                .......

               #include <commdlg.h>
               #endif
               #endif
[解决方案]
    由以上代码可以看出如果在没有定义WIN32_LEAN_AND_MEAN宏
的大前
提下windows.h有可能包含winsock.h 头文件,因此我们得出一个很简单
的解决方
法就是在包含<windows.h>之前定义WIN32_LEAN_AND_MEAN宏,如
下所示:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值