外部dll visual studio C#错误

时间:2015-09-02 16:32:16

标签: c# visual-studio dll

我正在使用外部dll,但我收到此错误

  

类型' System.DllNotFoundException'未处理的异常发生在ACRCloudExtrTest.exe中。   其他信息:无法加载DLL' acrcloud_extr_windows_1.0.1.dll':找不到指定的模块。 (HRESULT异常:0x8007007E)

我已将dll放在项目文件夹中,也在system32和sysWOW64中,但没有任何效果。

我在这里打电话给dll:

class ACRCloudExtr
{
    public static byte[] CreateFingerprint(byte[] pcmBuffer)
    {
        byte[] fpBuffer = null;
        if (pcmBuffer == null || pcmBuffer.Length <= 0)
        {
            return fpBuffer;
        }
        IntPtr pFpBuffer = IntPtr.Zero;
        int fpBufferLen = create_fingerprint(pcmBuffer, pcmBuffer.Length, ref pFpBuffer);
        if (fpBufferLen > 0)
        {
            fpBuffer = new byte[fpBufferLen];
            Marshal.Copy(pFpBuffer, fpBuffer, 0, fpBufferLen);
            free_fingerprint(pFpBuffer);
        }
        return fpBuffer;
    }

    [DllImport("acrcloud_extr_windows_1.0.1.dll")]
    private static extern int create_fingerprint(byte[] pcm_buffer, int pcm_buffer_len, ref IntPtr fps_buffer);
    [DllImport("acrcloud_extr_windows_1.0.1.dll")]
    private static extern void free_fingerprint(IntPtr fps_buffer);
}

2 个答案:

答案 0 :(得分:0)

如果您的项目参考中有该dll,请右键单击它 - &gt; 属性 - &gt; 复制本地 - &gt;设为 true

否则,如果该dll在项目文件夹中作为dll文件添加到您的项目中,请右键单击 - &gt; 属性 - &gt; 复制到输出目录 - &gt;设为始终复制

构建您的项目。

答案 1 :(得分:0)

- 使用Dependency Walker检查您的DLL以查看它调用的其他DLL。

复制项目输出文件夹中的这些DLL。他们可能有自己的依赖来解决。