让我们想象一下,我们在C ++ / CX上完全编写了一些应用程序。此应用程序的根命名空间为namespace SomeApp{...}
。我们在此命名空间中有ref class MainPage{...}
。此外,还有ref class App{...}
,派生自Windows::UI::Xaml::Application
类。在方法App::OnLaunched(...)
中,我们使用代码
auto someVariable = ref new MainPage();
原始C ++应用程序(不使用C ++ / CX扩展)中此代码的等效内容是什么? 我试图用
替换它 ComPtr<IInspectable> someVariable;
auto className = HStringReference(RuntimeClass_SomeApp_MainPage).Get();
RoActivateInstance(className, somevariable.GetAddressOf());
但是此调用始终返回&#34; REGDB_E_CLASSNOTREG类未注册&#34;。 我认为,C ++ / CX编译器将此代码替换为:
什么选择是对的?