求助!能不能帮忙把下面几小段Delphi语句转换成C#语句? 分不够可以再给. 很急,在线等...

earlsen 2006-04-07 09:03:48
public
PServerEqaddr:PEquip_addr;
{ Public declarations }
end;
------------------------------------------------------------------------------------
begin
new(PServerEqaddr);
new(PServerEqaddr);
PServerEqaddr^.nport :=byte(strtoint(edtCom.Text)); ;
PServerEqaddr^.ntype := $10; //服务器默认的机器类型
PServerEqaddr^.number_addr := gByteConvert(word(1)); //高低位互换 //注意:服务器默认为1号机
end;

---------------------------------------------------------------------------------------
//设备信息结构定义
type
PEquip_addr = ^TEquip_addr;
TEquip_addr = record
nport:Byte; //串口号1 2 3 4 5 6分别表示com1,com2,com3,com4,com5,com6
ntype:Byte; //设备类型:你这里直接调用为 $10或16
number_addr:word; ////设备编号地址 (0X0001-0X7000)
end;
------------------------------------------------------------------
begin
iReturn:=Ysn_SetTempUserStatus(PServerEqaddr,gByteConvert(longword(StrToInt64("1"))),2);
end

------------------------------------------------------------------------------------------
function Ysn_SetTempUserStatus(machine_add:PEquip_addr;card_id:longWORD;stateflag:BYTE):integer; far;stdcall; external 'Ysn_Y3ID.dll';

--------------------------------------------------------------------------------
function TForm1.gByteConvert(const Source: Cardinal): Cardinal;
var
I: Integer;
x:Byte;
ab: array[0..3] of Byte;
s: Cardinal absolute ab[0];
begin
s:=source;
for I := 1 to 2 do // Iterate
begin
x:=ab[I-1];
ab[I-1]:= ab[4-I];
ab[4-I]:=x;
end; // for
result:=s;
end;
...全文
282 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
clasj 2006-04-11
  • 打赏
  • 举报
回复
//#include <windows.h>

typedef struct{
unsigned char nport;
unsigned char ntype;
unsigned short number_addr;
}Equip_addr, *PEquip_addr;

PEquip_addr lpServerEqaddr;

unsigned long gByteConvert(const unsigned long source)
{
unsigned long s = source;
unsigned char (*ab)[4] = (unsigned char (*)[4])&s;
unsigned char x;
for(int i=1; i<3; i++){
x = (*ab)[i-1];
(*ab)[i-1] = (*ab)[4-i];
(*ab)[4-i] = x;
}
return s;
}

int main(int argc, char* argv[])
{
lpServerEqaddr = new Equip_addr;
lpServerEqaddr->nport = 1;
lpServerEqaddr->ntype = 0x10;
lpServerEqaddr->number_addr = gByteConvert(1);
//system("pause");
return 0;
}
aiirii 2006-04-10
  • 打赏
  • 举报
回复
你的代码, 用了很多指针,转后也不纯正了
earlsen 2006-04-10
  • 打赏
  • 举报
回复
clasj:

C++的也可以.谢谢你了.,
GARNETT2183 2006-04-08
  • 打赏
  • 举报
回复
有个软件可以帮你转换,叫做
delphi2cs.msi
你去Google查吧,很多地方有得下,好像还蛮好用。。
http://www.google.com/search?hl=en&q=delphi2cs.msi
clasj 2006-04-08
  • 打赏
  • 举报
回复
C++的要吗?C#不会。
earlsen 2006-04-08
  • 打赏
  • 举报
回复
很急,在线等...

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧