VB6_SAFEARRAYSYM=/INCLUDE:_vbSafeArrayToPtr@16
| 部分 | 含義 |
|---|---|
/INCLUDE: | 鏈接器指令:**強制將指定符號納入最終可執行文件**,即使該符號未被直接引用(防止優化剔除)。 |
_vbSafeArrayToPtr | VB6 運行時庫導出函數,**將 SafeArray 結構體指針轉為通用指針**,供底層互操作/調試/序列化使用。 |
@16 | **標準調用慣例 修飾**,表示該函數參數總大小為 **16 字節**(4 個 32 位參數)。MSVC 導出符號格式:_FunctionName@ParamBytes。 |
/INCLUDE 強制保留符號,確保 DLL 導出表包含該函數,運行時 GetProcAddress / 內部調用才能找到。問題中提到「導出序數有什麼用」。
序數 是 DLL 導出表中函數的**數字索引**(從 1 開始)。調用者可通過 **序數而非名稱** 導入函數(GetProcAddress(hDll, (LPCSTR)16)),優勢:
總結:@16 是 **stdcall 參數字節數修飾**,/INCLUDE 強制鏈接器保留該導出符號,防止 VB6 運行時關鍵函數被誤刪。