У меня есть c ++ dll, который в определенный момент должен делегировать задачу dll, написанному на .Net. Для этого я создал статическую библиотеку c ++ / cli, которая использует / использует .net dll для достижения некоторой ЗАДАЧИ. Затем я статически связываю статическую библиотеку c ++ / cli с c ++ dll. Это выглядит примерно так.
cli.aTask() netdll.aTask()
c++ dll ----------> c++/cli ----------------> .net dll
< static link > <normal assembly inclusion>
Теперь соединение b / w c ++ dll и c ++ / cli в порядке. я могу сделать что-нибудь, используя библиотеку .net на уровне c ++ / cli, а затем вызвать это из c ++ dll. но когда я создаю объект класса из .net dll или обращаюсь к статическому методу класса .net dll, я получаю исключение в c ++ dll (на самом деле происходит сбой c ++ dll, никаких исключений). ниже сообщение, которое я получил.
foo.exe is using c++dll
Unhandled exception at 0x7c812aeb in "foo.exe": OxE0434f4d: 0xe0434f4d.
c ++ dll-код, вызывающий метод cli:
CLILibrary::CCLILib lib;
lib.GetUsersInput();
cli-код вызова .net dll:
DotNetLibrary::DotNetClass::aMethod(); // static method`
.net код класса dll:
namespace DotNetLibrary
{
public class DotNetClass
{
public DotNetClass(){}
public static void aMethod(){}
}
}
Теперь, если я не использую DotNetLibrary::DotNetClass
в c ++ / cli lib, исключение прекращается.
Пожалуйста, помогите. Моя цель - вызвать .net lib из c ++ dll, если есть лучший способ, то это тоже будет хорошо. заранее спасибо.