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