救命啊!那位大侠能帮我转化一下代码吗?我不懂C#(200)

  • 主题发起人 主题发起人 jierxrh
  • 开始时间 开始时间
J

jierxrh

Unregistered / Unconfirmed
GUEST, unregistred user!
C#转化成DELPHI代码如下: int nUSBDataLen; byte[] pbuf; nUSBDataLen = B_GetUSBBufferLen() + 1; pbuf = new byte[nUSBDataLen]; B_EnumUSB(pbuf); B_CreateUSBPort(1);
 
nUSBDataLen: integer;pBuf: array of byte;nUsbDataLen := B_GetUSBBufferLen() + 1;//函数pBuf := SetLength(nUSBDataLen);B_EnumUSB(pBuf);//函数B_CreateUSBPort(1);//函数
 
楼上的pBuf := SetLength(nUSBDataLen);改成setlength(pBuf,nUSBDataLen)
 
C#跟Delphi不是差不多吗,不怎么要转化的。var nUSBDataLen: Integer; pbuf: array of byte;begin nUSBDataLen := B_GetUSBBufferLen() + 1; SetLength(pbuf, nUSBDataLen); B_EnumUSB(pbuf); B_CreateUSBPort(1); end;
 
多谢各位,动作挺快啊!var nUSBDataLen: Integer; pbuf: array of byte;begin nUSBDataLen := B_GetUSBBufferLen() + 1; SetLength(pbuf, nUSBDataLen); B_EnumUSB(pbuf); B_CreateUSBPort(1); end;这样不行,打印3个以内行,3个以外就自动退出程序pbuf = new byte[nUSBDataLen];这个是给 pbuf字节数组分配内存空间我刚刚才看到一个,DELPHI分内存空间单。好像是这样,还没测试打印机,下午看看行不行var pbuf: string;nUsbLen := B_GetUSBBufferLen() + 1; SetLength(pbuf, nUsbLen); FillChar(Pointer(pbuf)^, nUsbLen, 0); B_EnumUSB(pbuf); B_CreateUSBPort(1);
 
SetLength(pbuf, nUsbLen); 就是分配内存。下面这句是把分配到的内存用#0初始化:FillChar(Pointer(pbuf)^, nUsbLen, 0);
 
那如果我要填空地址呢?是不是FillChar(Pointer(pbuf)^, nUsbLen, null); 这样啊
 
用#0初始化即可,无需清空。
 
用#0就表示空字符串了。 也就是清空的意思。
 
后退
顶部