函数是test( char * str1, char * str2)调用DLL传入str1的是:
char apptype; /*应用类型:’0’—银行卡
char trans[2]; /*2~3位 交易类型: */
/*联网缴费:'00'-缴费 ‘03’-签到*/
char amount[12]; /*4~15位 金额(12字节,无小数点,左补0,单位:分)*/
char old_trace [6]; /*16-21位 原凭证号,用于撤销使用,若无撤销交易,则补足’0’*/
char info[90]; /*22~111位 自定义域,90字节*/返回的是str2:
char resp_code[2]; /*1~2位 返回码
char resp_chin[40]; /*55~94位 汉字说明(40字节,左对齐,不足部分后补空格)*/
/*请注意,在C#或JAVA中,一个汉字只认为是一个字符*/
/*但此处一个汉字占两个字节,请开发商自行判断全角半角*/
char bank_code[4]; /*3~6位 银行编号(4字节)*/
char card_no[20]; /*7~26位 卡号 (20字节,左对齐,不足部分后补空格)*/
char expr[4]; /*27~30位 有效期 (4字节) */
char batch[6]; /*31~36位 批次号(6字节)*/
char trace[6]; /*37~42位 流水号 (6字节)*/
char amount[12]; /*43~54位 金额(12字节,无小数点,左补’0’,单位分)*/
char smchtid[15]; /*95~109位 商户号*/
char stermid[8]; /*110~117位 终端号*/
char reference[12]; /*118~129位 系统参考号*/
char sdate[4]; /*130~133位 交易日期,月日*/
char stime[6]; /*134~139位 交易时间,时分秒*/
请问C#中分别传入与输出是什么类型?
char apptype; /*应用类型:’0’—银行卡
char trans[2]; /*2~3位 交易类型: */
/*联网缴费:'00'-缴费 ‘03’-签到*/
char amount[12]; /*4~15位 金额(12字节,无小数点,左补0,单位:分)*/
char old_trace [6]; /*16-21位 原凭证号,用于撤销使用,若无撤销交易,则补足’0’*/
char info[90]; /*22~111位 自定义域,90字节*/返回的是str2:
char resp_code[2]; /*1~2位 返回码
char resp_chin[40]; /*55~94位 汉字说明(40字节,左对齐,不足部分后补空格)*/
/*请注意,在C#或JAVA中,一个汉字只认为是一个字符*/
/*但此处一个汉字占两个字节,请开发商自行判断全角半角*/
char bank_code[4]; /*3~6位 银行编号(4字节)*/
char card_no[20]; /*7~26位 卡号 (20字节,左对齐,不足部分后补空格)*/
char expr[4]; /*27~30位 有效期 (4字节) */
char batch[6]; /*31~36位 批次号(6字节)*/
char trace[6]; /*37~42位 流水号 (6字节)*/
char amount[12]; /*43~54位 金额(12字节,无小数点,左补’0’,单位分)*/
char smchtid[15]; /*95~109位 商户号*/
char stermid[8]; /*110~117位 终端号*/
char reference[12]; /*118~129位 系统参考号*/
char sdate[4]; /*130~133位 交易日期,月日*/
char stime[6]; /*134~139位 交易时间,时分秒*/
请问C#中分别传入与输出是什么类型?
char stime[6] 用
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
private char[] stime;
把char*的变量声明为string
如果需要返回的,用StringBuilder
C++ C#
char* string
传出的char* StringBuilder