我正在构建一个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 *
你知道如何初始化吗?
答案 0 :(得分:1)
由于您使用的是C ++ / CLI dll,为什么不使用String ^而不是char *,以便您能够从c#更新它而不会出现问题?
public value class S_OpenParam {
public :
int iPort;
String^ szIpAddress; <-- String^ instead of char*
int iBaudRate;
};