首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到ATL的静态链接始终失败

到ATL的静态链接始终失败
EN

Stack Overflow用户
提问于 2013-01-05 17:50:13
回答 1查看 962关注 0票数 1

我使用一些ATL函数来创建Media控件,但似乎只能使用“动态链接到ATL”选项。当我切换到静态链接到ATL时,我无法成功创建控件。

我真的很困惑。有人能帮我吗?

下面是我的代码:

代码语言:javascript
复制
//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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-12 21:10:58

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

可以在此处进行设置:属性页| C/C++ |预处理器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14170585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档