即使缺少程序集引用,也可以从C#类的C ++创建实例

时间:2013-04-22 14:37:48

标签: c# c++ createinstance

我有一个C#配置表单,可以通过两种方式调用:

  1. 直接来自其自己的.exe
  2. 从我们的主应用程序:在这种情况下,有一个C ++函数实例化C#类。
  3. 此配置表单使用Interop.Outlook.dll,但它是可选的。 如果Outlook.dll丢失,这就是两种情况下发生的情况:

    1. 我们捕获异常并且表单工作正常,显然没有Outlook功能。
    2. 主应用程序崩溃,未到达C#构造函数。
    3. C ++代码是:

      m_pMyObject = new MyLib::IMyClassPtr(__uuidof(MyLib::MyClass));
      

      (似乎调用CreateInstance。)如果缺少Outlook.dll,此行会触发_com_error异常。

      我的印象是C ++无法处理这种情况,因为它需要解析所有引用。

0 个答案:

没有答案