在将我的第三方非托管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)