Возможно ли для родной библиотеки 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...
}
}