Вызов управляемого C ++ / CLI из нативного C ++ - PullRequest
0 голосов
/ 23 апреля 2019

Возможно ли для родной библиотеки C ++ вызывать код C ++ / CLI?

Я хочу получить доступ к коду C # в модульном тесте C ++.Для этого я создал одну оболочку C ++ / CLI (dll CLR).Я успешно могу создать экземпляр класса C # в C ++ / CLI.Но когда я создаю экземпляр класса C ++ / CLI в классе модульного теста C ++, я получаю ошибку во время выполнения «Не удалось установить контекст выполнения для запуска теста».Когда я удалил код вызова класса C ++ / CLI, тогда фиктивные тестовые примеры проходят.Все строится успешно, но только во время выполнения модульных тестов не удается.

UnitTestSetup.cpp

namespace UnitTest
{
   UnitTestHelperSetup::MockSetup *g_mockSetup;
   TEST_CLASS(TestSetup)
   {
      TEST_METHOD(TestMethodSetup)
      {
        g_mockSetup= new UnitTestHelperSetup::MockSetup();
        // other code...
      }
   }
}
-----------------------------------------------------------------

UnitTestHelperSetup.cpp(CLR project)

#ifndef UNITTESTHELPERS_OPT_EXPORTS
#define UNITTEST_OPT_API __declspec(dllimport)
#else
#define UNITTEST_OPT_API __declspec(dllexport)
#endif

namespace UnitTestHelperSetup
{
   class MockSetup
   {
       UNITTEST_OPT_API MockSetup();
       // other code...
   }
}

...