環境
- OS: Win2K Pro SP4
- IDE: VC6 SP5
- ACE 版本:Latest Beta Kit (ACE.zip)
建置步驟
- 解壓至
D:\ACE_wrappers
D:\ACE_wrappers\ace\config.h 新增:#include "ace/config-win32.h"
- VC6 開啟
ace.dsw → Batch Build → 選擇配置(Debug/Release, Static/Dynamic, MFC/Non-MFC)→ Rebuild All
- 產出:
ace\*.lib、bin\*.dll
- 同樣建置
ace_static.dsw 產出靜態庫
庫命名規則
| 類型 | Debug | Release |
| Dynamic | aced.lib / aced.dll | ace.lib / ace.dll |
| Static | acesd.lib | aces.lib |
專案設定範例
- Include:
D:/ACE_wrappers
- Preprocessor:
ACE_AS_STATIC_LIBS (靜態連結時)
- Code Generation: Debug Multithreaded DLL (或 MT/MTd)
- Link Input:
aced.lib (或對應庫)
- Library Path:
D:\ACE_wrappers\ace
- 系統 PATH 加入
D:\ACE_wrappers\bin (動態庫執行時)
常見編譯錯誤對策
| 錯誤 | 解決 |
| Cannot open ace/SOCK_Acceptor.h | 補齊 Include 路徑 |
| must link against multi-threaded libraries | Code Generation → Multithreaded DLL |
| ACE_ERROR/ACE_DEBUG undeclared | #include "ace/Log_Msg.h" |
| sprintf/strlen not member of ACE_OS | #include "ace/OS_NS_stdio.h" / OS_NS_string.h |
| unresolved external __imp__sndPlaySoundA | Link Input 加入 winmm.lib |
範例測試
// Server
servers 1919
// Client
clients 127.0.0.1 1919
輸出大小:Static Release servers.exe 124KB、Dynamic Release server.exe 16KB (+ DLL)。