錯誤訊息:
unresolved external symbol IID_IOPCServer
unresolved external symbol IID_IOPCSyncIO
unresolved external symbol IID_IOPCItemMgt
原因:專案包含了 `opcda.h`、`opccomn.h` 等標頭,但未連結包含 GUID 定義的來源檔(通常為 `opcda_i.c`、`opccomn_i.c`)。
在 Visual Studio 專案中加入現有項目 → 選取 `opcda_i.c`、`opccomn_i.c` → 確認編譯動作為 C/C++ Compiler。
// 在任一 .cpp 最前面定義一次即可
#include // 強制定義 GUID
#include "opcda.h"
#include "opccomn.h"
// 或手動展開(不建議長期維護)
const IID IID_IOPCServer = {0x39c13a4d,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}};
const IID IID_IOPCItemMgt = {0x39c13a54,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}};
const IID IID_IOPCSyncIO = {0x39c13a52,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}};
#import "opcda.dll" no_namespace named_guids raw_interfaces_only
// 產生的 .tlh/.tli 已含 GUID 定義,無需手動加 .c 檔
適合快速原型,正式專案建議靜態連結 SDK 提供的 .lib 與 .c 檔。