2014-03-27 48 views
1

我的.NET项目中有C++ dll。从dll进口的方法如下图所示C + + DLL似乎不能在.NET中正常工作

private const string LibName = "dll_name.dll"; 

    [DllImport(LibName, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)] 
    public extern static void Method1(double[] _params, UInt32 len); 

    [DllImport(LibName, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)] 
    public extern static double Method2(Int32 x, Int32 y); 

它第一次运行良好。但后来我发现,当我从Visual Studio 2012或更高版本构建dll时,程序无法找到dll并引发异常“未找到文件”。但是当我在VS 2010中从同一个项目构建相同的DLL时,没有任何问题。我不认为工具链版本可以产生如此大的差异。 我怎样才能使它从新版本的VS工作?

+0

DLL位于何处?它在你的系统路径中还是在项目本地? –

+1

@DStanley说了什么,或者只是和可执行文件放在同一个目录下。 –

+0

Dll与可执行文件位于同一目录 – rum

回答

0

正如在评论中提到的问题是VS工具集的不同版本。如果你使用新的VS,你也需要新的MSVCredist。

相关问题