gpt4 book ai didi

c++ - 如何获取模板化 WTL 类对象 C++ 的地址

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:32:36 24 4
gpt4 key购买 nike

我继承了一些 C++ 代码,这让我很困惑。

像这样声明一个类。

class CIENavigator :  public CWTLAxControl<CIENavigator,IWebBrowser2>
{
public:

像这样的实例

CIENavigator CIE;
CIENavigator * pCIE = &CIE;

得到这个编译错误

1>.\IENavigator.cpp(446) : error C2440: 'initializing' :
cannot convert from 'IWebBrowser2 **' to 'CIENavigator *'
1> Types pointed to are unrelated; conversion requires
reinterpret_cast, C-style cast or function-style cast

虽然 CIE 声明为 CIENavigator,但它认为 &CIE 的类型是 IWebBrowser2 **

如果我像这样强制转换:

CIENavigator CIE;
CIENavigator * pCIE = (CIENavigator *) &CIE;

编译通过了,但是指针确实是错误的指针。

我注意到类名出现在它自己的声明中,但我不知道那有什么意义。我不喜欢类模板。

如何获得正确的 CIENavigator 对象 (CIE) 地址?

最佳答案

CWTLAxControl 可能有一个重载的 operator&,以规避使用 Boost.AddressOf .

关于c++ - 如何获取模板化 WTL 类对象 C++ 的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10262682/

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