c++中char * 转换为c#该转成什么类型?

时间:2022-05-06 22:46:00
我要调用c++中的一个方法 dc_dispinfo_T8(HANDLE idComDev,unsigned char line,unsigned char offset,char *data);  其中unsigned char line,unsigned char offset是不是传int就行了?最后一个参数char *data该传个什么类型? 请大家帮帮忙了,急用。谢谢,分不高,不能给太多,不好意思了。求大家帮帮忙了。

18 个解决方案

#1


String

#2


System.Text.Encoding.GetEncoding("GB2312").GetString(char *) 

#3



C++                C# 
传入的char*      string 
传出的char*      StringBuilder(预分配空间) 
short            short 
char              byte 
char[n]          fixed byte[n] 
结构指针          结构指针 
函数指针          委托 

http://topic.csdn.net/u/20090225/15/a6bc50ad-9721-4749-b189-dc4a4bc045a1.html

#4



 [DllImport("dcrf32.dll")]
 public static extern int dc_dispinfo_T8(int idComDev,  int line,  int offset,string sdata);

string s = "aaaa";
//调用方法
 st = dc_dispinfo_T8(IcDev, 0, 0,s);
这样写不行呀,这是操作T8读卡器的,让读卡器的显示屏上显示出信息,有人做过这个吗?

#5


string

#6


stringbuilder

#7


1

#8


2

#9


string

其实看是传入还是传出

#10


[DllImport("dcrf32.dll")]
public static extern int dc_dispinfo_T8(int idComDev,  int line,  int offset,StringBuilder sdata);


            StringBuilder sb = new StringBuilder("cc");

            st = dc_dispinfo_T8(IcDev, 0, 0,sb);
StringBuilder也不行。

#11


管它入还是出 用stringbuilder 和 string都试试

#12


string和stringbuilder 都试过了,而且加了[In]和[Out]也都试过了,都不行byte[]也试过了,不行

#13


C++                C# 
传入的char*      string 
传出的char*      StringBuilder(预分配空间) 
short            short 
char              byte 
char[n]          fixed byte[n] 
结构指针          结构指针 
函数指针          委托 

这个很对,但具体使用要看你的代码,如果是传出来的话,
应该要与out或是ref一起用,
传进去的话,就只是一个分配在栈当中的变量,string就行了

#14


这个应该是传进去的,是让他显示在 一个显示屏上的。

#15


Marshal.PtrToStringAuto(IntPtr)

#16


晕 看错了 你是要传进去
直接传char数组 char[0]的地址 传&char[0] 
c#中
&char和&char[0]不一样

#17


结果如何呢??我先试试看

#1


String

#2


System.Text.Encoding.GetEncoding("GB2312").GetString(char *) 

#3



C++                C# 
传入的char*      string 
传出的char*      StringBuilder(预分配空间) 
short            short 
char              byte 
char[n]          fixed byte[n] 
结构指针          结构指针 
函数指针          委托 

http://topic.csdn.net/u/20090225/15/a6bc50ad-9721-4749-b189-dc4a4bc045a1.html

#4



 [DllImport("dcrf32.dll")]
 public static extern int dc_dispinfo_T8(int idComDev,  int line,  int offset,string sdata);

string s = "aaaa";
//调用方法
 st = dc_dispinfo_T8(IcDev, 0, 0,s);
这样写不行呀,这是操作T8读卡器的,让读卡器的显示屏上显示出信息,有人做过这个吗?

#5


string

#6


stringbuilder

#7


1

#8


2

#9


string

其实看是传入还是传出

#10


[DllImport("dcrf32.dll")]
public static extern int dc_dispinfo_T8(int idComDev,  int line,  int offset,StringBuilder sdata);


            StringBuilder sb = new StringBuilder("cc");

            st = dc_dispinfo_T8(IcDev, 0, 0,sb);
StringBuilder也不行。

#11


管它入还是出 用stringbuilder 和 string都试试

#12


string和stringbuilder 都试过了,而且加了[In]和[Out]也都试过了,都不行byte[]也试过了,不行

#13


C++                C# 
传入的char*      string 
传出的char*      StringBuilder(预分配空间) 
short            short 
char              byte 
char[n]          fixed byte[n] 
结构指针          结构指针 
函数指针          委托 

这个很对,但具体使用要看你的代码,如果是传出来的话,
应该要与out或是ref一起用,
传进去的话,就只是一个分配在栈当中的变量,string就行了

#14


这个应该是传进去的,是让他显示在 一个显示屏上的。

#15


Marshal.PtrToStringAuto(IntPtr)

#16


晕 看错了 你是要传进去
直接传char数组 char[0]的地址 传&char[0] 
c#中
&char和&char[0]不一样

#17


结果如何呢??我先试试看

#18