Я пытаюсь использовать .NET DLL из кода Java (через собственный код C ++).
Поток такой.
Создана .net DLL с использованием проекта типа библиотеки классов C # из Visual Studio 2010.
Создан собственный код C ++ (консольное приложение) для использования этой DLL Использование этого пошагового руководства от Microsoft Этот код может успешно вызывать код DLL.
Написал код Java с некоторыми нативными методами, сгенерировал заголовки и реализовал заголовок в проекте C ++ DLL (перенес исходный код из примера в соответствующие методы, сделал некоторые переменные глобальными).
Эта DLL успешно загружена, но код завершается ошибкой при создании указателя интерфейса для класса Managed.
см. Статью из руководства Microsoft
// Create the interface pointer.
ICalculatorPtr pICalc(__uuidof(ManagedClass));
Обратите внимание, что этот вызов успешно возвращается для консольного приложения, но при вызове через поток JNI JVM дает сбой.