Проблема с System.DllNotFoundException в файле dll, созданном путем включения ippiFFTGetSize_C_32fc ().(Intel IPP)
Я создал dll
создан с использованием IPP function ippiFFTGetSize_C_32fc ()
,
Ссылка на этот файл DLL из проекта wpf (C#) приводит к System.DllNotFoundException: Unable to load DLL 'TEST.dll'
ошибка.
int HioTest(Ipp32fc* csSrcImg, Ipp32fc* csDstImg)
{
// FFT Init
IppiFFTSpec_C_32fc *pSpec = NULL; /* Pointer to FFT spec structure */
Ipp8u *pMemInit = NULL, *pBuffer = NULL; /* Pointer to the work buffers */
int sizeSpec = 0, sizeInit = 0, sizeBuf = 0; /* Size of FFT spec structure, init and work buffers */
int order = 9;
ippiFFTGetSize_C_32fc(order, order, IPP_FFT_DIV_INV_BY_N, ippAlgHintAccurate, &sizeSpec, &sizeInit, &sizeBuf);
return 5;
}
Я создал TEST.dll
(Язык C) с использованием IPP для внешней библиотеки. Я хочу сослаться на TEST.dll
в моем проекте wpf и использовать его.
Используемый инструмент - "visual studio 2017", а в версии IPP используется последняя версия compilers_and_libraries_2019.1.144
,
Смотрите документацию IPP. Настройки проекта dll,
- Debug / x64
- добавлять
ippsmt.lib, ippcoremt.lib
заAdditional Dependencies
, - Автоматическая настройка "однопоточной DLL".
export .def
создано.- добавлять
ippInit ()
в dllmain.cpp - Ссылка на C#. / clr setting
C# проект
- Debug / x64
- разблокировать загрузчик
- Увеличьте размер резервного стека
Я настроил это так.
Other ippMalloc (), ippsAdddC_32f_I ()
dll
Файл, который я создал с помощью вышеописанного, работал правильно в моем проекте wpf. Тем не менее, TEST.dll, содержащий ippiFFTGetSize_C_32fc ()
приведет к ошибке System.DllNotFoundException: Unable to load DLL 'TEST.dll'
, Я хочу знать причину или решение.
1 ответ
В случае, если вы используете Microsoft Visual Studio, попробуйте очистить и восстановить его.