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

问题: 问题:
1、未能从程序集“PowerControl, Version=1.0.0.0 , Culture=neutral, PublicKeyToken=null”中加载类型“WIFI_AUTH_PARAM”,因为它在 0 偏移位置处包含一个对象字段,该字段已由一个非对象字段不正确地对齐或重叠。  1、未能从程序集“PowerControl, Version=1.0.0.0 , Culture=neutral, PublicKeyToken=null”中加载类型“WIFI_AUTH_PARAM”,因为它在 0 偏移位置处包含一个对象字段,该字段已由一个非对象字段不正确地对齐或重叠。
2、其他信息: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B) 2、其他信息: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
分析 分析
一、1、可能是sdk空间被加载导致 一、1、可能是sdk空间被加载导致
            见https://social.msdn.microsoft.com/Forums/windowshardware/zh-CN/58afbf38-fc5e-4cd2-b2b3-a81cee9b81f3/wifiauthparam-0-?forum=visualcshartzhchs 见https://social.msdn.microsoft.com/Forums/windowshardware/zh-CN/58afbf38-fc5e-4cd2-b2b3-a81cee9b81f3/wifiauthparam-0-?forum=visualcshartzhchs
            和lctk这兄弟请教的方案,在这再感谢下lctk。 和lctk这兄弟请教的方案,在这再感谢下lctk。
二、1、这个是问题很简单,环境位数与dll位数不匹配,x64和x86的问题,调成一致就可以了。 二、1、这个是问题很简单,环境位数与dll位数不匹配,x64和x86的问题,调成一致就可以了。
具体操作 具体操作
一、1、使用c#包装下c++的库,然后再建个c# dll库,调用c#包装过的方法就可以,见图 一、1、使用c#包装下c++的库,然后再建个c# dll库,调用c#包装过的方法就可以,见图
二、1、这个在其他很简单,就是在web稍微少见一点,我是64位的库,所有要把IIS调成64 二、1、这个在其他很简单,就是在web稍微少见一点,我是64位的库,所有要把IIS调成64
            vs2015自带IIS express,在vs的选项,选择工具-》选项-》项目和解决方案-》Web项目 vs2015自带IIS express,在vs的选项,选择工具-》选项-》项目和解决方案-》Web项目
            把IIS 64位打勾就可以了。 把IIS 64位打勾就可以了。
第二个问题参考这两位: 第二个问题参考这两位:
http://www.cnblogs.com/leolion/p/3789732.html http://www.cnblogs.com/leolion/p/3789732.html
http://blog..net/ma_jiang/article/details/52679431 http://blog..net/ma_jiang/article/details/52679431
经验分享 程序员 微信小程序 职场和发展