㈠ 這個程序是否合法 BCB下編譯通過!求高人指教。 關於函數簽名,始終搞不明白。
答不上啊
㈡ Borland C++ Builder 6.0的編譯器可靠嗎(前提:不是正版的BCB,網上Down的,大家懂得)
你確定你僅僅是注釋掉了第三行就結果就顯示為1了?
我想你不僅注釋了第三行,還把sizeof(char)也修改了吧?
其實結果是4還是1與第三行沒有關系,sizeof(char)表示char的大小,是1;sizeof(szRet)表示指針大小,是4。
㈢ 用QT可以編譯BCB的工程嗎,如果可以應該怎麼用
肯定可以編譯,QT3的時候我自己編譯過。Borland的C++對標准支持的還是很好地,再說QT的代碼沒有像Loki那些新潮庫使用了很多template代碼,編譯應該沒有問題!
但是你都准備使用QT了,還要BCB幹嘛,VS2008的編輯器不BCB好用太多,不用VCL就不用BCB吧!
㈣ Borland C++這個編譯器就是BCB嗎
BCB 是Borland C++ Builder的簡稱,Borland C++ Builder 是Borland公司98年推出的全新32位Windows開發工具。C++Builder 不僅繼承了Delphi使用簡便,功能強大,效率高等特點,而且它還結合C++語言所有優點。C++Builder可以說是至今最好的Windows開發工具。
上面的解釋來自:http://..com/question/6347510.html
下面是我的看法
BCB也就是個普通的IDE,不見得就有多好,如果你在選擇編C/C++用什麼工具的話,建議你選擇VC
=============================
補充,是的
PS:你是不是忘記採納答案了?
㈤ 一段C語言在BCB中編譯的代碼,求解釋
char buffer[1024] = {0}; //定義並賦初值為全0
#pragma resource "*.dfm" //資源定義在各個dfm為擴展名的文件中
TForm1 *Form1; //定義一個指向TForm1窗體對象的指針
(->) 仿問指針所指對象的元素的訪問運算符,與點(.)相對應,就是一個減號加一個大於號連寫在一起,使用類的指針,結構體指針和聯合體指針,就經常會用到這個指向訪問運算符啊,這個運算符可不是BCB特有的,是C語方和C++共有的,不認得它說明你C的基礎不牢靠啊
#include <vcl.h> //包含頭文件 vcl.h 它是什麼庫的頭文件,我也不曉得咧
BCB與VC就所用的語言來講都是標準的C/C++,沒有區別,但是在資源的定義上,工程的處理上,窗體、資源與代碼的關聯上、集成環境的使用上都是完全不同的
BCB到6.0之後還有沒有繼續升級我不曉得,但是Bland公司已尼倒閉不再有後繼支持了,若不是手頭還有舊的BCB項目要繼續維護話,新手是沒有必要學習使用BCB來開發了,windows下的C/C++編程用VS20XX系列夠用了,舊到VC6,新到VS2011,學習或開發都是可用的。
我最近五到六年裡都一直只用VS2003(VC7.1),偶而也用BCB6.0(那是因為公司有一個舊項目是BCB開發的框架,做界面時是比VC7.1省事快捷此),在此之前,我還用了好多年的VC6和TC3.0呢,初學時我用的是TC2.0+DOS3.3/DOS6.22,現在我轉行了,16位的32位和64位的都不做而改做8位的C51程序了,這是進化還是退化了呢? 呵呵,羅嗦太多了
㈥ VC 中如何使用 BCB 編譯的庫文件
在 Visual C++ 或者 Visual Studio 中, 是無法直接使用 BCB 工程編譯產生的庫文件的. 究其原因, 是由於微軟 Visual C++ lib 文件格式與 BCB 工程的 lib 文件格式不同所導致. Lib 文件中存放的是動態鏈接庫的介面信息, 而不會含有任何函數的內部實現細節. 因此, 我們可以直接通過 Dll 文件來反向生成特定格式的 lib 文件, 以便在 VC 和 BCB 中交叉使用各個編譯的動態鏈接庫.
以 MTK 平台的多路下載工具 SP_MDT 為例, 演示在 VC++ 中直接使用 BCB 編譯的 lib 庫的問題及解決方案. 我們以 Eboot 為例, 源代碼目錄下關於 Eboot 的文件有以下幾個:
Eboot 頭文件定義, 路徑: SP_MDT_SRCEboot
Eboot lib 庫文件, 路徑: SP_MDT_SRCLib
Eboot 動態鏈接庫文件, 路徑: SP_MDT_SRCoutput
我們新建一個 VC++ MFC 工程, 將上述文件全部拷貝到 MFC 工程目錄下, 同時在對話框中實現如下代碼段:
#include "interface.h"ANDROID_DL_HANDLE_T handle;
Android_DL_Create(&handle);
此時, 編譯工程會報出如下錯誤:
error LNK2019: 無法解析的外部符號 _Android_DL_Create@4
該符號在函數 "public: void __thiscall CLibDemoDlg::OnBnClickedOk(void)" 中被引用
原因在於我們僅僅包含了相應函數的頭文件, 而並沒有導入任何的函數實現(如 cpp 源文件或者 lib 庫文件). 接下來, 我們嘗試直接在 VC++ 中使用 BCB 編譯生成的 lib 庫文件, 加入以下代碼:
#pragma comment(lib, "eboot.lib")
編譯時報出如下錯誤:
eboot.lib : warning LNK4003: 無效的庫格式; 已忽略庫
顯然, VC++ 並不能正確的識別 BCB 所生成的 lib 庫文件. 那麼如何解決這個問題呢? 一般來說有兩種方法:
動態載入 dll 動態鏈接庫
最直接的方法是, 既然有頭文件, 那麼就可以知道各個函數的定義, 而 dll 動態鏈接庫則會將這些公開的函數導出. 因此, 可以直接調用 LoadLibrary 載入動態鏈接庫, 並查找到相應的函數地址, 完成調用. 這種方法簡單粗暴, 其好處是寫出的源代碼無論是在 BCB 還是在 VC++ 平台都能夠通用. 但其缺點也很明顯, 需要改寫頭文件, 定義各種各樣的函數指針, 如果使用到的導出函數很多, 則工作量較大.