Ошибка импорта DLL на ESP не была правильно сохранена через вызов функции при использовании aruco V3 - PullRequest
2 голосов
/ 17 января 2020

Я пытаюсь интегрировать ArUco V3 в проект Unity.

Поэтому я создал .DLL, который импортируется как функция типа:

private static extern void functionName(uint, uint, float, float,float,float,IntPr,float)

Функция в заголовочном файле:

void functionName(unsigned int, unsigned int, float, float, float, float, float const*, float)

Я вызываю его следующим способом:

aruco::Markerdetector 
aruco::Cameraparameters(CalculateCameraMatrix(float, float, float, float), CalculateDistortionCoefficients(float const*), cvSize(uint, uint))

Во время работы приложения opencv.core и opencvimgpro c DLL-библиотеки постоянно загружаются и выгружен.

Это проблема с преобразованием параметров или есть корреляция с вызывающими конвенциями, которые использовались при компиляции OpenCV.

1 Ответ

2 голосов
/ 20 января 2020

Может решить проблему, добавив соглашения о вызовах для каждого метода импорта DLL отдельно

 [DllImport("Name", EntryPoint = "EntrypointName", CallingConvention =CallingConvention.Cdecl)]
...