2014-03-27 50 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。

相關問題