本文針對 DB-Library 開發人員,說明將 16 位元 Windows 3.x/OS/2 應用程式遷移至 Windows NT 32 位元 (Win32) 平台的關鍵要點。
dbinit/dbwinexit 初始化清除| 檔案 | 用途 | 環境變數 |
|---|---|---|
| NTWDBLIB.DLL | DB-Library 函數 | PATH |
| DBNMPNTW.DLL | 命名管道驅動程式 | PATH |
| NTWDBLIB.LIB | 匯入定義 (Link 時需求) | LIB |
#define DBNTWIN32 #include #include
DBNTWIN32/D DBNTWIN32cl386 -c -G3d -Di386=1 -DWIN32 sqltest.c
link -Machine:i386 -subsystem:Windows -out:sqltestw.exe
-entry:WinMainCRTStartup sqltestw.res sqltestw.obj
$(guilibs) $(DBLIB)\ntwdblib.lib
| 策略 | 適用情境 | 做法 |
|---|---|---|
| 1. 不修改執行 | 既有穩定應用、無未來擴充需求 | Win16 子系統直接執行 |
| 2. 原始碼雙平台編譯 | 持續開發、需同時支援 Win16/Win32 | 條件編譯區隔平台差異 |
| 3. 完全轉換 Win32 | 需執行緒、搶先式多工、大記憶體 | 移除冗餘 Win16 呼叫與相依 |
INT_PTR、LONG_PTR 等)wParam/lParam 已擴展為 32 位,檢查編碼/解碼邏輯int 在 Win16 為 16 位、Win32 為 32 位,接收 DB-Library 回傳值的變數型別必須調整dbprhead/dbprrow 在 Win32 主控台應用程式可用(Win16 不支援)dblocklib、dbunlocklib遵循本指南,可順利將 DB-Library 應用程式遷移至 Windows NT 平台,並充分發揮 Win32 多執行緒與大記憶體優勢。