相当于C ++ Windows运行时中的“ref new MainPage()”

时间:2015-04-01 07:23:55

标签: c++ windows-runtime c++-cx

让我们想象一下,我们在C ++ / CX上完全编写了一些应用程序。此应用程序的根命名空间为namespace SomeApp{...}。我们在此命名空间中有ref class MainPage{...}。此外,还有ref class App{...},派生自Windows::UI::Xaml::Application类。在方法App::OnLaunched(...)中,我们使用代码

实例化MainPage类的实例

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编译器将此代码替换为:

  • MainPage的直接调用构造函数
  • 尝试找到激活工厂,然后调用ActivateInstance。
  • 另一个代码

什么选择是对的?

0 个答案:

没有答案