【发布时间】:2019-06-15 18:01:12
【问题描述】:
我创建了一个使用IPP function ippiFFTGetSize_C_32fc () 创建的dll。
从 wpf 项目 (c#) 引用此 dll 文件会导致 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;
}
我使用 IPP 为外部库创建了一个 TEST.dll(C 语言)。我想在我的wpf项目中引用TEST.dll并使用它。
使用的工具是“visual studio 2017”,IPP版本使用最新版compilers_and_libraries_2019.1.144。
请参阅 IPP 文档。 dll项目的设置,
- 调试/x64
- 为
Additional Dependencies添加ippsmt.lib, ippcoremt.lib。 - 自动“单线程 DLL”设置。
-
export .def已创建。 - 将
ippInit ()添加到dllmain.cpp - 来自 C# 的引用。 /clr 设置
C#项目
- 调试/x64
- 解锁加载器
- 增加保留堆栈大小
我是这样设置的。
Other ippMalloc (), ippsAdddC_32f_I ()
我使用上面创建的dll 文件在我的 wpf 项目中正常工作。但是,包含ippiFFTGetSize_C_32fc () 的 TEST.dll 将导致错误System.DllNotFoundException: Unable to load DLL 'TEST.dll'。
我想知道原因或解决方法。
【问题讨论】: