关于c#调用c++的dll文件,参数对照和返回问题
fanbo 2009-08-14 02:39:53 dll的说明中有下列程序
int ReadCardInfo(int ComPort, unsigned char *CardNum,unsigned char *CardNum1,unsigned char *CardID,int &CardType,unsigned char *ExpireDay)
入口参数:
出口参数:
CardNum:卡显示卡号(10字节,ASCII码)
CardNum1:交易卡号(7字节,ASCII码)
CardID:卡序列号(4字节,HEX)
cardType:卡类
ExpireDay:卡有效期(3字节,Hex年月日)
我在c#中,这样应用。
[DllImport("SmartCom411SFJ.dll", CharSet = CharSet.Auto)]
public static extern int ReadCardInfo(int ComPort, StringBuilder CardNum, StringBuilder CardNum1, StringBuilder CardID, ref int CardType, StringBuilder ExpireDay);
将cardnum的返回值放到了一个stringbuilder类型中,但是由于其中是ASCII码,所以我使用
string scardn = CardNum.ToString();
语句后,scardn则变成了乱码!
我应该怎么样才能得到这些ascii表示的字符串呢?望高手教我!或者是因为我使用的参数类型不对?