C++Builder (BCB) 作為經典的 RAD 開發工具,擁有豐富的 VCL 元件庫與高效的編譯器。本文整理了開發過程中常用的快捷鍵、路徑取得、訊息處理、DLL 匯出入、除錯技巧、CHM 說明檔呼叫,以及 PowerBuilder 與 C++ 資料類型對照表,供開發者快速查閱。
| 功能 | 快捷鍵 | 說明 |
|---|---|---|
| 整塊向右縮排 | Ctrl + Shift + I | 選取程式碼區塊後使用 |
| 整塊向左縮排 | Ctrl + Shift + U | 取消縮排 |
AnsiString exeDir = ExtractFileDir(Application->ExeName);
常用於讀取設定檔、資源檔等相對路徑操作。
for (int i = 0; i < 10000; ++i) {
// 處理耗時運算
Application->ProcessMessages(); // 讓訊息佇列得以處理,避免介面凍結
}
注意:過度使用可能導致重進入問題,建議搭配旗標控制或改用執行緒。
extern "C" __declspec(dllexport) __stdcall __int32 MyFunction(__int32 param);
extern "C" __declspec(dllimport) __stdcall __int32 MyFunction(__int32 param);
建議使用巨集切換:
#ifdef BUILDING_MY_DLL
#define MY_API __declspec(dllexport)
#else
#define MY_API __declspec(dllimport)
#endif
extern "C" MY_API __stdcall __int32 MyFunction(__int32 param);
ShellExecute(NULL, NULL, L"C:\\Help\\MyHelp.chm", NULL, NULL, SW_SHOWNORMAL);
可攜帶參數開啟特定主題:MyHelp.chm::/topic.html。
| Microsoft/Win32 | PB 16-bit | PB 32-bit |
|---|---|---|
| Bool | Boolean | Boolean |
| Byte, Char | Char | Char |
| Char* | Ref String | Ref String |
| Colorref | Uint | Ulong |
| Double | Double | Double |
| Dword | Uint | Ulong |
| Handle / Hdc / Hfile / Hinstance / Hwnd | Uint | Ulong |
| Int | Int | Int |
| Long | Long | Long |
| Lparam / Wparam | Uint | Ulong |
| Lpstr / Lpcstr | Ref String | Ref String |
| Lpvoid | Ref Struct | Ref Struct |
| Short | Int | Int |
| Structure | Ref Struct | Ref Struct |
| Uint | Uint | Uint |
| Word | Int | Long |
跨語言呼叫 DLL 時請嚴格對照,避免棧平衡錯誤或資料損毀。
這些技巧涵蓋了 BCB 開發的常見場景,建議收藏備查。隨著專案遷移至現代 C++ (C++17/20) 與 FireMonkey 框架,部分 VCL 特有用法可能需調整,但核心 Win32 API 呼叫方式保持不變。