在Visual Studio 2013的C#项目中加载C ++ DLL时出错

时间:2019-03-11 07:19:14

标签: c# c++ dll visual-studio-2013 loading

在将我的第三方非托管c ++ dll加载到我的c#项目中时,我一直在遇到一个非常奇怪的情况。我已经在我的bin文件夹中添加了非托管dll,并在我的C#代码文件中使用Dll import属性导入了dll。当我仅在Dll导入属性中使用DLL名称时,当我在DLL导入属性中指定具有DLL名称的完整路径时,就会出现问题,我可以加载和调用C ++ DLL的方法。

问题是当我仅在Dll导入属性中使用DLL名称时,它向我显示以下错误消息“无法加载DLL'C:\ Users \ i2v \ Desktop \ NetDEVSDK.dll':指定的模块无法找到。(来自HRESULT的异常:0x8007007E)。”

我的bin文件夹中有c ++ dll,并且我的项目设置为x86构建模式(因为c ++ dll是针对x86构建的)。此外,我的计算机上还安装了所有c ++运行时可再发行文件,请帮助我解决此问题。

我的代码-

var json=[
    {   s:'s',  f:1,  b:1,  q:2   },
    {   s:'s',  f:1,  b:1,  q:3   },
    {   s:'s',  f:2,  b:1,  q:2   },
    {   s:'s',  f:2,  b:1,  q:2   },
    {   s:'s',  f:1,  b:2,  q:2   },
    {   s:'s',  f:1,  b:2,  q:2   },
    {   s:'s',  f:0,  b:1,  q:2   },
    {   s:'s',  f:0,  b:1,  q:2   },
    {   s:'s',  f:1,  b:0,  q:2   },
    {   s:'s',  f:1,  b:0,  q:2   },
    {   s:'s',  f:0,  b:0,  q:2   },
    {   s:'s',  f:0,  b:0,  q:2   },
];

var result = Object.values(json.reduce((list, cur) => {
    if(list[cur.f + ',' + cur.b])
        list[cur.f + ',' + cur.b].q += cur.q
    else
        list[cur.f + ',' + cur.b] = Object.assign({}, cur)
    return list
}, {}))
console.log(result)

0 个答案:

没有答案