【问题标题】:A problem with System.DllNotFoundException in the dll file created by including ippiFFTGetSize_C_32fc ().(intel IPP)包含 ippiFFTGetSize_C_32fc ().(intel IPP) 创建的 dll 文件中 System.DllNotFoundException 的问题
【发布时间】: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'。 我想知道原因或解决方法。

【问题讨论】:

    标签: c# c++ wpf dll intel-ipp


    【解决方案1】:

    如果您使用的是 Microsoft Visual Studio,请尝试清理并重新构建它。

    【讨论】:

    • 感谢您的回复。但是我试过了,问题没有解决。
    • 尝试将 TEST.dll 文件放入可执行文件所在的同一文件夹中。
    • 遗憾的是,dll文件已经和可执行文件放在一起了。它被引用为另一个 dll 文件(我创建并正常工作)。奇怪的是,有问题的函数有一个“找不到 dll”的错误。
    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 2010-12-18
    • 2021-10-14
    • 2021-12-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多