我有一個小的非託管C++應用程序,我試圖使用CoCreateInstance(...)創建一個作爲ActiveX控件安裝的「Adobe SVG PLayer」實例。x64應用程序和ActiveX控件的問題
當我在32位配置下編譯和運行我的應用程序時,它工作正常,但是當我在64位配置下編譯時,我的應用程序無法創建Adove SVG Player的實例,儘管我知道它已安裝。
這是我使用這樣的代碼:
const CLSID CLSID_SVGCtl =
{0x377b5106,0x3b4e,0x4a2d,{0x85,0x20,0x87,0x67,0x59,0x0c,0xac,0x86}};
BOOL CheckSVGPresented()
{
BOOL bResult = FALSE;
try
{
IUnknown* pSvgCtrl = NULL;
if (FAILED(::CoCreateInstance(CLSID_SVGCtl, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (LPVOID*)&pSvgCtrl)) || (NULL == pSvgCtrl))
throw 1;
bResult = TRUE;
pSvgCtrl->Release();
}
catch (...)
{
bResult = FALSE;
}
return bResult;
}
我的猜測是,可能我有一個問題,因爲我有一個64位主機(我的應用程序)試圖建立一個32一個ActiveX dll的實例(SVG播放器)。
我正在測試Windows 7,x64位版本。
所以,如果你有任何線索,我會很感激的幫助。
您是否爲64位版本重新編譯? – 2010-02-17 16:30:14
是的,我確定。 – Vic 2010-02-17 16:58:59