私はいくつかの 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) アドレスを取得するにはどうすればよいですか?