Borland C++ Builder 6 (BCB6) 是經典的 RAD 工具,雖已停止維護,但存量項目仍在運維。本文針對初學者高頻疑問給出權威解答。
#include <vcl.h> 是什麼?VCL (Visual Component Library) 是 Borland 封裝的 Windows API C++ 類庫,僅存在於 BCB/BDS 環境,標準 C++、VC++、GCC 均無此頭文件。它封裝了窗口、控件、消息循環、畫布等,使 GUI 開發類似 Delphi。
| 指令 | 作用 |
|---|---|
#pragma package(smart_init) | 控制包的初始化順序,智能延遲加載減少啟動時間 |
#pragma resource "*.dfm" | 綁定窗體設計文件(二進制資源),包含控件屬性、佈局、事件綁定 |
TForm1 *Form1; | 全局窗體指針,IDE 自動生成,應用程序可直接用 Form1->Show() 顯示主窗體 |
-> 指針操作符p->member 等價於 (*p).member,用於「指針指向結構體/類」時訪問成員;- 再 >,無空格;.,指針用 ->,引用用 .。struct Node { int val; Node* next; };
Node* head = new Node{1, nullptr};
head->val = 10; // 正確
(*head).val = 10; // 等價但繁瑣
// head.val = 10; // 編譯錯誤:head 是指針非對象
| 維度 | BCB6 | VC++ (VS) |
|---|---|---|
| GUI 框架 | VCL (專有) | MFC / Win32 API / Qt / WinUI |
| 編譯器 | Borland C++ 5.6 (老舊,C++0x 支持弱) | MSVC (最新標準支持最好) |
| 跨平台 | 僅 Windows | 配合 CMake/Qt 可全平台 |
| 現狀 | 維護模式,建議遷移 | 主流活躍 |
建議:新項目勿用 BCB,存量項目逐步遷移至 Qt / wxWidgets / 標準 C++ + CMake。
system() 用法與陷阱system("cls"); // 清屏(僅 Windows)
system("pause"); // 暫停(僅 Windows)
system("notepad.exe");// 啟動程序
⚠️ 安全風險:命令注入、不可移植、性能差(創建進程開銷大)。嚴禁在服務端/高性能/跨平台代碼中使用。替代方案:ANSI 轉義序列清屏、CreateProcess (Win) / fork+exec (POSIX)。