刚接手到一个ic卡项目,需要用到新的协议,不过刚调用这个ZLG600Lib.dll就报尝试读取或写入受保护的内存。这通常指示其他内存已损坏。不知道有没有大佬知道解决方法文档和一个c++的demo放在下面的百度云里面,ZLG600Lib.dll在ZLG600A_pcdemo.zip里面
链接:https://pan.baidu.com/s/1up3z-YpfJ0NJD8O-QOz30Q 密码:tpbq
链接:https://pan.baidu.com/s/1up3z-YpfJ0NJD8O-QOz30Q 密码:tpbq
可能是_cdecl协议,你在DllImport里可以显式声明,默认是_stdcal
需要显式声明字符集
c#默认使用Unicode,而很多c/c++的Dll默认采用多字节
[DllImport("your_dll", EntryPoint = "your_func", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]