我的.NET项目中有c ++ dll。从dll导入的方法如下所示
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中工作?
最佳答案
正如评论中提到的,问题出在不同版本的VS工具集中。如果您使用新的VS,则还需要新的MSVCredist。