用C++重新封装了一下C++的dll,用C#调用报错“尝试读取或写入受保护的内存,这通常指示其他内存已损坏”。需要注意的是原来的dll直接调用是不会报这个错误的,只是因为返回的是string类型需要转为char*所以用C#重新封装了。因为买的设备的工程师在婚假,所以只能自己重新封装dll,但是一直报错。大概知道应该是调用原来的dll中返回string时候的指针出了问题,但是不知道怎么修改,希望各位不吝赐教!
问题相关代码
原C++dll接口:
我封装的接口以及实现代码:
C#的调用代码:
报错情况: