Предположим, вы следующий C++ код:Access C++ статические методы из C#
extern "C" {
void testA(int a, float b) {
}
static void testB(int a, float b){
}
}
Я хочу, чтобы получить доступ к этому в моем проекте C# с использованием DllImport
:
class PlatformInvokeTest
{
[DllImport("test.so")]
public static extern void testA(int a, float b);
[DllImport("test.so")]
internal static extern void testB(int a, float b);
public static void Main()
{
testA(0, 1.0f);
testB(0, 1.0f);
}
}
Это отлично работает для testA
, но testB
не удаляет исключение EntryPointNotFoundException.
Могу ли я получить доступ к testB
из моего кода на C#? Как?
функция объявлена * * Статическая на глобальный масштаб не имеет внешних связей, так и не могут быть экспортированы. Вам придется удалить статику. Возможно, вы сбиваете с толку его с объявлением функции члена класса, объявляя ее статикой, что-то совсем другое. –