gpt4 book ai didi

c++ - 到 ATL 的静态链接总是失败

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:33 24 4
gpt4 key购买 nike

我使用了一些 ATL 函数来创建媒体控件,但似乎我只能使用 Dynamic link to ATL 选项。当我切换到 ATL 的静态链接时,我无法成功创建控件。

我很困惑。谁能帮帮我?

这是我的代码:

//related headers
#include <wmp.h>
#include <atlbase.h>
#include <atlcom.h>
#include <atlhost.h>
#include <atlctl.h>

//related vars
CAxWindow m_wndView; // ActiveX host window class. CComPtr<IWMPPlayer>
m_spWMPPlayer; // Smart pointer to IWMPPlayer interface.

//related function code:
CComPtr<IAxWinHostWindow> spHost;
HRESULT hr;
m_wndView.Create(m_hWnd, rect, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
hr = m_wndView.QueryHost(&spHost);
/*
when I switch to "Static Link to ATL" option, I will fail here
E_FAIL == hr;//the failure flag
*/
if(!SUCCEEDED(hr)) return FALSE;

hr = spHost->CreateControl(CComBSTR(_T("{6BF52A52-394A-11d3-B153-00C04F79FAA6}")), m_wndView, 0);
if(!SUCCEEDED(hr)) return FALSE;

hr = m_wndView.QueryControl(&m_spWMPPlayer);
if(!SUCCEEDED(hr)) return FALSE;

最佳答案

当静态链接到ATL时,你必须使用预处理器:_ATL_DLL,

您可以在这里设置:属性页 | C/C++ |预处理器

关于c++ - 到 ATL 的静态链接总是失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14170585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com