最近在做本科毕业设计,需要调用C++编写的DLL与运动控制卡进行通信。其中一个返回string类型的函数在VS2010中能正常使用,但在VS2012中却报错。如下图:
翻出老师给的C++代码资料,如下截图:
就想,C++里面中的const char* 对应C#的什么类型呢?
试过用StringBuilder之类的不行,然后在网上查到,可以用IntPtr类型。修改后,如最上的那个图。然后如下图所示:就可以获得返回的字符,使用Marshal,需要添加命名空间:using System.Runtime.InteropServices;。
以上。