如何在c#中初始化sbyte *

时间:2016-12-30 09:01:40

标签: c# c++-cli

我正在构建一个c#应用程序,在我的应用程序中,我加载了一个c ++ / cli dll,并调用它的函数。

我在c ++ / cli类中声明了一个值类。

public value class S_OpenParam {
        public :
          int iPort;
          char* szIpAddress;
          int iBaudRate;
};

然后,我试图在我的c#应用程序中初始化我的S_OpenParam。

我在初始化 char * szIpAddress

时遇到问题
myObj.S_OpenParam sParam;
sParam.iBaudRate = 0;
sParam.iPort = 0;

当我尝试为其分配值时:

sParam.szIpAddress = "127.0.0.1";

它显示的类型是sbyte *

enter image description here

你知道如何初始化吗?

1 个答案:

答案 0 :(得分:1)

由于您使用的是C ++ / CLI dll,为什么不使用String ^而不是char *,以便您能够从c#更新它而不会出现问题?

public value class S_OpenParam {
        public :
          int iPort;
          String^ szIpAddress; <-- String^ instead of char*
          int iBaudRate;
};