青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

loop_in_codes

低調做技術__歡迎移步我的獨立博客 codemaro.com 微博 kevinlynx

強大的bcb

早就聽說bcb(borland c++ builder)是一個強大的RAD開發工具,也早就聽說曾經的borland搞出的編譯器堪稱經典。

恰好最近在做一個GUI工具,想在界面開發上盡量快一點。每一次用上MFC都讓我覺得渾身難受,總有些常用的

界面功能它就是沒有。在接口實現上,MFC基本上就只是封裝了WIN API而已。想想世界上還有什么強大的GUI庫,

找了一下,其實不管GUI庫封裝的怎么樣,我更多地還是需要一個工具,能夠快速地堆積出界面。

 

于是,在網上下載了被國人精簡了的bcb2009。然后,噩夢開始了。首先,我需要把邏輯層代碼(也就是實現具體

功能的那一層)移植到BCB下。然后得到了很多和語法相關的編譯錯誤:

 

1.
E2397: Template argument cannot have static or local linkage

這個錯誤發生于:

void func()
{

    struct Info

    {

        

    };

   std::queue<Info> abc;
}

它的意思是,模板參數必須是全局鏈接的,總之它不允許std::queue的參數是一個在函數內部臨時定義

的類型(誰來告訴我這是C++標準)。

 

2.

E2357 Reference initialized with 'FileLoader::RawData', needs lvalue of type 'FileLoader::RawData'

這個錯誤發生于:

FileLoader::RawData FileLoader::GetRawData() const;

FileLoader::RawData &raw = loader.GetRawData(); //不能用引用

很久沒看C++書,所以,誰又來告訴我C++標準里,這里到底能不能用引用?

 

3.

E2515 Cannot explicitly specialize a member of a generic template class

這個錯誤發生的情景更復雜些:

template <typename _Tp>

class Test
{

   template <typename _U>

   class Other;

   template <>

   class Other<void>

   {

   };
};

意思是說,我不能在一個模板類里特化成員模板類。誰又來告訴我標準規定的是什么?

 

4.

void func( Obj &a )
{
}

func( Obj() );這個也被視為錯誤。必須得在調用func之前自己定義個臨時變量。

 

5.

我曾經留下了關于宏遞歸的一些代碼,被用在我寫的lua-binder和lua-caller中自動生成代碼。這下好了,

BCB開始警告我,我的這些宏不能工作了。它和MSVC在某些事情上分歧可真是大:

#define PARAM( n ) ,typename P##n //注意這個宏包含一個逗號

#define CHR( x, y ) CHR1( x, y )

#define CHR1( x, y ) x##y

#define BCB_ERROR( a, b ) CHR( a, b )

BCB_ERROR( 1, PARAM( 1 ) ) 當這樣使用宏時,基于我在GNU C上看到的關于宏的規則,會先展開

PARAM(1),于是得到BCB_ERROR( 1, ,typename P2 )。然后,BCB認為PARAM(1)展開的逗號需要參與

BCB_ERROR的展開了。于是,我的整個宏庫無法工作了。

關于這個問題,我直接用MSVC寫了個生成器,讓MSVC替我生成各種參數的lua-binder和lua-caller,然后

寫成外部頭文件,最后直接在BCB里包含了這些頭文件。從而使我的lua-binder和lua-caller可以繼續使用。

 

然后,我的1W多行代碼終于在BCB下50多個WARNINGS的提示下編譯成功了。懷揣著興奮的心情,想自己終

于可以rapid開發界面了。創建了個VCL FORM APPLICATION,噩夢又開始了:

 

1.

BCB莫名其妙地在我編譯一個CPP文件時給出如下提示:

F1004 Internal compiler error at 0x59b4ea8 with base 0x5980000

看起來像是BCB的編譯器給崩潰了。囧。google了一下,發現不是我人品問題,很多人遇到相同的問題。

別人給出的解決方案是:restart your bcb。從昨天晚上到現在為止,這個錯誤發生了好幾次。

 

2.

new std::ofstream();會讓程序崩潰,往不該寫的地方寫了東西。我就奇怪了,你BCB自己帶的C++IO實現,

難道還有BUG?再次google,還真發現是BCB自己的BUG,并且在幾個版本之前就存在這個BUG。那個天真

的老外還說希望在BCB2009下能被修復。修改方案如下:

1)xlocale文件里把這句話注釋了:*(size_t *)&table_size = 1 << CHAR_BIT;

2)xlocale里把成員_Id_cnt訪問屬性改為public,然后在自己的文件里定義一次。

 

3.

程序終于可以運行了。但是BCB的IDE環境總是不那么貼心。我移動了幾個窗口改成我習慣的樣子,但是一重啟

居然又恢復成default(難道是因為盜版)。它的智能提示似乎總是跟著鼠標指針,有時候指向某個符號,鼠標

就顯示忙。為了提示某個類的成員,某個函數的原型,BCB偶爾都會卡一下。其實我不介意我的編輯器沒有這

些提示功能,在MSVC下我也從不用VA來幫我寫代碼。我甚至不厭其煩地在VIM下敲代碼切窗口去看函數原型,

但是,你他媽作為一個IDE就得像個IDE的樣子,要不,你干脆關掉所有功能,別給我卡就行了。

 

這個時候我開始懷疑選擇BCB會不會是一個錯誤的開始,或者說在使用某個東西時,總會帶著使用其他同類東西

的感覺甚至偏見去看待這個新事物。但是,在我想堅持繼續使用BCB時,我一compile,它又提示我:

F1004 Internal compiler error at 0x59b4ea8 with base 0x5980000

posted on 2009-08-15 11:17 Kevin Lynx 閱讀(5831) 評論(17)  編輯 收藏 引用 所屬分類: 通用編程

評論

# re: 強大的bcb 2009-08-15 11:27 移動12530彩鈴

很好啊~不錯  回復  更多評論   

# re: 強大的bcb[未登錄] 2009-08-15 12:05 robin

這個bcb用起確實想打人  回復  更多評論   

# re: 強大的bcb 2009-08-15 12:21

"被國人精簡了的bcb2009",活該!
為什么不去官方下載完整的原始版本?真佩服你居然有勇氣使用國人XX過的版本.  回復  更多評論   

# re: 強大的bcb 2009-08-15 12:22

再補充一下, 無知者無畏啊.
照樓豬你這么說的, CodeGear還做什么開工具, 回家種地去得了. 真是幼稚.  回復  更多評論   

# re: 強大的bcb 2009-08-15 12:50 OwnWaterloo

2和4都是符合標準的, 引用只能綁定到左值, 只有const引用才可以綁定到臨時對象。
FileLoader::RawData FileLoader::GetRawData() const;
const FileLoader::RawData& r = loader.GetRawData();
// 估計不是所希望的, 應該這樣才對:
const FileLoader::RawData v = loader.GetRawData();


void func( Obj &a )
func( Obj() ); // error in ISO C++

void func(const Obj& a);
func( Obj() ); // ok


1. 我只記函數模板中, 局部類可以使用模板參數。
反過來, 還真不記得了……
連同3, 這種使用了生僻模板技術的代碼, 編寫的時候就應該注意按標與各編譯器的支持程度的差異。  回復  更多評論   

# re: 強大的bcb 2009-08-15 14:02 Kevin Lynx

@OwnWaterloo
3Q
@艸
你就解釋下我遇到的那些“BUG”是怎么回事就行了,就事論事。或者你可以告訴我,new std::ofstream在你的BCB上沒問題。你的程序編譯時不會出現F1004 Internal compiler error。
  回復  更多評論   

# re: 強大的bcb[未登錄] 2009-08-15 16:19 欲三更

那些關于模板的標準問題我也不知道,但是那些關于引用的,是符合標準的。現行的標準(非c++09)規定右值只能綁定到const引用上。

編譯器崩潰是bcb的bug,并且沒有解決方案,我找過很久,根本沒有。

關于那個我根本看不懂的宏,更不知道了。。。

總的來說,像你這種情況,我建議你用BCB制作界面,把功能代碼全用MSVC搞成dll。  回復  更多評論   

# re: 強大的bcb 2009-08-15 17:56 WindyWinter

用盜版就夾起尾巴來做人。  回復  更多評論   

# re: 強大的bcb 2009-08-15 18:07 小笨象

老實說,我用這么久,除了IDE可能有一些BUG之外,就沒一下子遇到這么多問題,可能你用的模板太多了吧。我是用最基本的方式來解決問題的。
模板是不會的。。。。。
第3點,這個是可以在選項中關掉的。BCB中的這個功能,是最被世人所罵的。
但是在2009的時候,已經很好了,可能還是你用的版本的問題吧。總之,不要用所謂的精簡版本就沒錯。
  回復  更多評論   

# re: 強大的bcb[未登錄] 2009-08-15 20:49 missdeer

我從大學里開始用BCB,用了六年,之后因為工作需要開始用VC(MFC),之后就再也不想用BCB了。用VC很省事省心,遇到了問題,求助渠道寬廣得多,資料也是豐富得多。  回復  更多評論   

# re: 強大的bcb 2009-08-15 22:33 CY

BCB里不敢用那些復雜的模板,即時提示經常好卡,編譯出錯時就提示那么一句,太難debug了。
不過BCB用來做為C++的界面編程入門還是很好的,比較容易提起學習的興趣,個人感覺。  回復  更多評論   

# re: 強大的bcb 2009-08-16 00:30 放屁阿狗

bcb我從1.0用到6.0,還是3.0,4.0比較讓我滿意點,之后就開始混亂了,編譯速度很慢,跟delphi無法比,現在又搞出部門獨立了,產品越做越糟糕,所以干脆不用了,還是用回vc和wxwidgets
建議使用qt把  回復  更多評論   

# re: 強大的bcb 2009-08-16 13:11 遠古毛利人

低調做技術!用慣一種工具自然會不習慣另一種。  回復  更多評論   

# re: 強大的bcb 2009-08-18 22:26 f

我也遇到過在vc下好好的代碼拿到bcb下運行會破壞內存 。  回復  更多評論   

# re: 強大的bcb 2009-10-09 14:31 starwing

A local type, a type with no linkage, an unnamed type or a type compounded from any of these types shall not be used as a template-argument for a template type-parameter.

摘自14.3.1.2 ISO C++03
  回復  更多評論   

# re: 強大的bcb 2010-02-27 20:04 楊楊

工具. 我之前也困擾了許久.. 后來結連用了WX. 和QT.. 感覺還不錯.   回復  更多評論   

# re: 強大的bcb 2011-07-01 10:41 backup

建議樓主用gcc編譯以下你的代碼試試,看看什么效果?
  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产精品尤物yw在线观看| 亚洲美女黄网| 久久精品国产亚洲5555| 亚洲一区免费看| 国产欧美一区二区精品婷婷| 午夜综合激情| 欧美亚洲免费电影| 亚洲第一精品夜夜躁人人爽| 老巨人导航500精品| 老司机免费视频久久| 亚洲欧洲午夜| 在线午夜精品自拍| 国产精品亚洲一区| 快播亚洲色图| 欧美成人一区二区| 亚洲在线观看| 久久精品一二三区| 艳妇臀荡乳欲伦亚洲一区| 一区二区精品国产| 狠狠狠色丁香婷婷综合激情| 欧美成人激情在线| 国产精品二区在线| 欧美69wwwcom| 欧美日韩在线视频首页| 久久久久青草大香线综合精品| 久久阴道视频| 亚洲一区二区三区激情| 久久久久国产精品一区二区| 99re6热在线精品视频播放速度| 亚洲一区二区成人| 亚洲精品国产品国语在线app| 亚洲午夜日本在线观看| 亚洲电影免费观看高清完整版| 在线一区二区日韩| 亚洲精品免费在线播放| 亚洲欧美影音先锋| 一本大道av伊人久久综合| 销魂美女一区二区三区视频在线| 亚洲精品久久久久久久久久久久久 | 亚洲一区二区少妇| 久久av一区| 亚洲欧美在线磁力| 欧美激情国产精品| 老巨人导航500精品| 国产精品yjizz| 亚洲国产精品免费| 国产一区二区三区久久| 中日韩午夜理伦电影免费| 亚洲国内自拍| 久久国产精品电影| 欧美在线观看视频一区二区| 欧美日韩国产一区| 亚洲国产美国国产综合一区二区| 国产一区二区三区成人欧美日韩在线观看 | 久久激情婷婷| 欧美一区二区在线观看| 欧美色网在线| 日韩午夜在线电影| 一本久久综合亚洲鲁鲁五月天| 久久视频免费观看| 噜噜噜在线观看免费视频日韩| 国产欧美日韩精品专区| 亚洲影院在线| 午夜精品成人在线视频| 国产精品久久久久9999| 99精品久久久| 亚洲欧美国产另类| 国产精品美女久久久久久久| 中国成人在线视频| 午夜免费久久久久| 国产精品欧美日韩久久| 亚洲一级在线观看| 欧美一区二区三区婷婷月色| 国产精品青草综合久久久久99| 亚洲午夜电影| 欧美一区二区成人| 红桃视频一区| 麻豆视频一区二区| 亚洲日本成人| 亚洲午夜羞羞片| 国产伦精品一区二区三区高清| 亚洲自拍偷拍色片视频| 久久久久久久性| 在线看日韩av| 欧美久久久久久蜜桃| 亚洲最新合集| 久久九九精品99国产精品| 一区视频在线播放| 欧美福利小视频| 一区二区三区视频在线| 久久精品99| 亚洲黄页视频免费观看| 欧美另类女人| 性做久久久久久久免费看| 美日韩丰满少妇在线观看| 亚洲肉体裸体xxxx137| 国产精品高潮在线| 久久精品亚洲精品| 亚洲精品日日夜夜| 欧美中文字幕视频| 91久久久久久久久| 国产精品毛片| 欧美成人日韩| 欧美一区二区三区啪啪| 亚洲第一偷拍| 欧美一区二区在线免费播放| 91久久精品久久国产性色也91| 国产精品国产馆在线真实露脸| 欧美一区二区三区日韩| 亚洲精选中文字幕| 欧美不卡高清| 午夜精品www| 亚洲精品一区二区三区在线观看| 国产精品久久久久久久久借妻| 久久久国产视频91| 亚洲视频播放| 亚洲日韩视频| 男女视频一区二区| 欧美中在线观看| 艳女tv在线观看国产一区| 伊人激情综合| 国产日韩欧美二区| 国产精品毛片va一区二区三区| 欧美成人中文字幕| 久久久国产成人精品| 亚洲自啪免费| 宅男噜噜噜66一区二区| 亚洲欧洲中文日韩久久av乱码| 蜜桃久久av一区| 久久久99精品免费观看不卡| 亚洲小视频在线| 一二三区精品| 亚洲精品在线电影| 亚洲国产精品一区| 黄色成人免费观看| 激情久久久久| 国内精品久久久久影院 日本资源| 国产精品国产三级国产专播精品人| 欧美高清视频www夜色资源网| 久久久午夜视频| 久久久久久综合| 久久精品一区四区| 欧美在线一区二区| 久久成人免费电影| 久久www成人_看片免费不卡| 午夜精品久久久久久久99热浪潮| 亚洲午夜女主播在线直播| 在线视频一区观看| 亚洲一区二区三区四区中文 | 美女脱光内衣内裤视频久久网站| 久久精品亚洲| 久久视频精品在线| 裸体素人女欧美日韩| 久久亚洲图片| 欧美激情免费观看| 91久久精品日日躁夜夜躁国产| 亚洲国产老妈| 艳妇臀荡乳欲伦亚洲一区| 一区二区三区四区五区精品视频 | 亚洲嫩草精品久久| 午夜一区二区三区在线观看| 欧美一区二区三区免费观看视频| 久久久久国产精品人| 美女主播精品视频一二三四| 欧美伦理在线观看| 国产精品一卡二卡| 一区在线影院| 一本大道久久a久久综合婷婷| 亚洲午夜在线观看视频在线| 亚洲欧美中文另类| 免费日本视频一区| 9久草视频在线视频精品| 国产精品99久久久久久久久久久久| 亚洲影视中文字幕| 裸体女人亚洲精品一区| 欧美日韩国产一区| 国语自产精品视频在线看一大j8| 亚洲国产欧美一区二区三区久久| 99精品免费| 久久久久国产精品午夜一区| 亚洲福利视频网站| 亚洲一区网站| 欧美成人免费全部| 国产午夜亚洲精品羞羞网站| 亚洲日本一区二区| 欧美在线三级| 日韩午夜激情电影| 久久精品一区二区| 国产精品久久久久久久久久免费看 | 亚洲一区三区电影在线观看| 久久久久国产精品www| 欧美日韩一区二区免费在线观看| 国产精品永久| 亚洲午夜极品| 亚洲电影天堂av| 亚洲欧美日韩在线播放| 欧美日韩不卡| 亚洲狠狠丁香婷婷综合久久久| 香蕉久久a毛片| 亚洲精品在线免费|