PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] C++ Builder的编译器规格
楼主:
z1976
(z1976)
2017-10-19 21:13:47
因为我现在做的专案希望可以在不同编译器和IDE之间 (e.g. bcb, vc++, qt, gcc or cl
ang) 共用程式码,所以要做一个桥接的程式,把差异的地方统一1个对外接口。需要透过
一些宏来判断环境。
其实毛最多的就字串处理函数而已。但我发现C++ Builder (以下简称BCB)
在32字节态下的支援性不是很好判断。公司用的版本是XE7。
它的__cplusplus是1,但是它却有define __STDC_LIB_EXT__ ,
所以它有一些 _s结尾的函数可以用。
但也不是每个_s 函数它都有支援,像是宽字串互转的mbstowcs_s和wcstombs_s就没有。
所以也不能用__STDC_LIB_EXT__或__plusplus来概括说有无支援_s函数
必须额外针对if defined(__BORLANDC__)来处理。
另外,像是vswprintf 在别的编译器都是4个参数,但BCB是3个(少了数量那一个)
这也要另外判别是不是BCB
会不会是BCB 32位元的tool chian比较没办法用通用的macro来判断其支援性?
(也许规格上没完全支援到C++11,但是有implement了部份函数来相容之类的?)
作者:
Sidney0503
(Sidney0503)
2017-10-19 21:31:00
请讲中文
作者:
Bencrie
2017-10-19 21:47:00
帮翻译 宏 = macro = 宏
作者: longlongint (华哥尔)
2017-10-19 22:35:00
最后一段可以补一行 "请问BCB的规范要去哪里查?"之类的所以就是开自己的函数,函数内用宏来分环境?
楼主:
z1976
(z1976)
2017-10-19 22:39:00
楼上,是的还有像是没有_s函数的版本就自己加这样。因为MS-VS14对于字串函数是规定要用xxx_s来取代旧的;这样也比较安全
作者:
kingofsdtw
(ä¸èƒ½é–’下來!!)
2017-10-21 01:14:00
typedef unsigned long long UINT64;typedef unsigned int UINT32;或许tools chain <type.h>会定义
https://goo.gl/6QbfkS
不然就是运行build.bash/build.batecho "BUILD_TOOLS=xxx" > env.h
作者:
Sirctal
(母猪母猪 夜里哭哭)
2017-10-22 20:32:00
天阿 什么年代了 还在C++ builder...
作者:
Bencrie
2017-10-22 21:04:00
还好吧。又不是 BCB6
继续阅读
[问题] 要怎么让主程式读到下面宣告的字符阵列
ketchupgood
Re: [讨论] WINAPI 执行绪问题
cole945
[讨论] WINAPI 执行绪问题
eric231
[问题] 短暂成为僵尸行程是正常的吗?[已解决]
Hazukashiine
[问题] 关于在cmd编译之后执行exe档
ssd860505da
[问题] 用阵列方式表达指标的习惯?
sppmg
[问题] 请问在Windows编译C++
nova06091
[问题] 关于stack和heap的一些疑问
rbufghj9713
[讨论] qt visual studio add in
eric231
[问题] Stack using Array to implement
dwight90488
Links
booklink
Contact Us: admin [ a t ] ucptt.com