asp.net web c# 调用 c++ dll库 c++转c#对象错误 海康SDK

博客主要讲述了在ASP.NET Web项目中使用C#调用C++ DLL库时遇到的加载类型错误和程序格式不正确的问题。错误原因可能包括SDK空间加载问题和环境位数与DLL位数不匹配。解决方案包括通过C#包装C++库,调整IIS为64位等。参考了相关论坛和博客文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:
1、未能从程序集“PowerControl, Version=1.0.0.0 , Culture=neutral, PublicKeyToken=null”中加载类型“WIFI_AUTH_PARAM”,因为它在 0 偏移位置处包含一个对象字段,该字段已由一个非对象字段不正确地对齐或重叠。 

2、其他信息: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

分析
一、1、可能是sdk空间被加载导致
            见https://social.msdn.microsoft.com/Forums/windowshardware/zh-CN/58afbf38-fc5e-4cd2-b2b3-a81cee9b81f3/wifiauthparam-0-?forum=visualcshartzhchs
            和lctk这兄弟请教的方案,在这再感谢下lctk。

二、1、这个是问题很简单,环境位数与dll位数不匹配,x64和x86的问题,调成一致就可以了。

具体操作
一、1、使用c#包装下c++的库,然后再建个c# dll库,调用c#包装过的方法就可以,见图
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值