_variant_t 是 Visual C++ COM 支持庫提供的智能指針封裝類,定義於 <comdef.h>,需鏈接 comsupp.lib(或 comsuppw.lib)。VS2008 預設不自動包含此頭文件,導致編譯器無法識別。
在使用 _variant_t 的源文件頂部添加:
#include <comdef.h> // _variant_t, _bstr_t 等定義
#include <comutil.h> // COM 工具函數(可選)
#include <OAIDL.H> // OLE 自動化介面定義(可選)
並確保專案屬性 → Linker → Input → Additional Dependencies 包含 comsupp.lib(Release)或 comsuppd.lib(Debug)。
COleVariant 是 MFC 封裝的 VARIANT 類,不依賴 comdef.h,故可直接使用。_variant_t 可用性,僅需正確引用頭文件與庫。ATL::CComVariant 或原生 VARIANT 配合 VariantInit/Clear,減少對 COM 支持庫的依賴。