哪位懂delphi看看这段代码

问题描述

定义FunctionEncodeInit(Parameter:Pointer):SmallInt;stdcall;external'HotelLock.dll';FunctionEncodeExit():SmallInt;stdcall;external'HotelLock.dll';{制宾客卡。}FunctionMakeGuestCard(Rom:Pointer;Pass:Pointer;Building:Smallint;Floor:Pointer;District:Pointer;Room:Pointer;enOverride:Smallint;FlatBit:Pointer;TimeWindow:Pointer;StartTime:Pointer;EndTime:Pointer):SmallInt;stdcall;external'HotelLock.dll';FunctionReadCard(Rom:Pointer;Pass:Pointer;Building:Pointer;Floor:Pointer;District:Pointer;Room:Pointer;enOverride:Pointer;FlagBit:Pointer;TimeWindow:Pointer;StartTime:Pointer;EndTime:Pointer):SmallInt;stdcall;external'HotelLock.dll';{清空卡片内容。Rom:卡号(返回值):smallint类型数组,长度为8}FunctionClearCardData(Rom:Pointer):SmallInt;stdcall;external'HotelLock.dll';事件(1)procedureTAPI_Demo.EncodeInit_BtClick(Sender:TObject);varParameter:array[0..255]ofchar;FunRet:smallint;beginLStrcpy(Parameter,Pchar(LockPath_Ed.Text));FunRet:=EncodeInit(@Parameter);ifFunRet<>1thenbeginMakeCardMsgBox(FunRet);exit;end;EncodeInit_Bt.Enabled:=False;EncodeGuestCard_Bt.Enabled:=True;ReadCard_Bt.Enabled:=True;ClearCard_Bt.Enabled:=True;EncodeExit_Bt.Enabled:=True;end;事件(2)procedureTAPI_Demo.EncodeGuestCard_BtClick(Sender:TObject);varLock_Make:TLock_Make;FunRet,i:smallint;EncodeDateTime:TDatetime;WordTime:array[0..6]ofword;begin//起始时间EncodeDateTime:=DateOf(SD_GQI_Dtp.DateTime)+TimeOf(ST_GQI_Dtp.DateTime);DecodeDatetime(EncodeDateTime,WordTime[0],WordTime[1],WordTime[2],WordTime[3],WordTime[4],WordTime[5],WordTime[6]);fori:=0to4doLock_Make.StartTime[i]:=smallint(WordTime[i]);//终止时间EncodeDateTime:=DateOf(ED_GQI_Dtp.DateTime)+TimeOf(ET_GQI_Dtp.DateTime);DecodeDatetime(EncodeDateTime,WordTime[0],WordTime[1],WordTime[2],WordTime[3],WordTime[4],WordTime[5],WordTime[6]);fori:=0to4doLock_Make.EndTime[i]:=smallint(WordTime[i]);//房号fori:=0to7do//清空房号信息,一张卡最多可以开4个独立的房门。Lock_Make.Room[i]:=0;Lock_Make.Room[0]:=se_Room1.Value;//挂失标志Lock_Make.enOverride:=1;//不覆盖旧卡(新卡旧卡可同时使用)//参数设置完毕,制卡FunRet:=MakeGuestCard(@Lock_Make.Rom,@Lock_Make.Pass,Lock_Make.Building,@Lock_Make.Floor,@Lock_Make.District,@Lock_Make.Room,Lock_Make.enOverride,@Lock_Make.FlagBit,@Lock_Make.TimeWindow,@Lock_Make.StartTime,@Lock_Make.EndTime);//显示制卡结果MakeCardMsgBox(FunRet);end;

解决方案

解决方案二:
就是把上面代码用vb或是c#解释一下?主要是指针这一块。
解决方案三:
比如像这个FunctionEncodeInit(Parameter:Pointer):SmallInt;stdcall;external'HotelLock.dll';在.net里定义时该用什么类型.
解决方案四:
[DllImport("HotelLock.dll",CallingConvention=CallingConvention.StdCall)]publicstaticexternshortEncodeInit(IntPtrpointer)

解决方案五:
delphi的这种定方法怎样转为C#Parameter:array[0..255]ofchar;
解决方案六:
procedureTAPI_Demo.EncodeInit_BtClick(Sender:TObject);varParameter:array[0..255]ofchar;FunRet:smallint;beginLStrcpy(Parameter,Pchar(LockPath_Ed.Text));FunRet:=EncodeInit(@Parameter);ifFunRet<>1thenbeginMakeCardMsgBox(FunRet);exit;end;这个怎么转为C#LStrcpy(Parameter,Pchar(LockPath_Ed.Text));
解决方案七:
大家帮帮忙啊。
解决方案八:
http://www.360doc.com/content/07/0405/11/2908_431505.shtml看看这个是否有帮助

时间: 2024-09-17 07:33:45

哪位懂delphi看看这段代码的相关文章

这是3位同学写的同一段代码逻辑

问题:提取"整数订单号"隐藏的机房路由规则,看一下我们这几位同学的实现,槽点自寻:规则:订单号后四位隐藏了机房路由规则,路由规则就是订单号的倒数第4.3位和倒数第2.1位的排列顺序交换一下,例如:订单号"1234",路由规则就是"3412". A同学 (浪费公司的水和电): B同学 (...不忙的时候还是要洗洗腿上的泥...): C同学 (还不错):

java android-如何读懂下面这段代码?

问题描述 如何读懂下面这段代码? 长辈朋友们,你们好.这段代码是用来生成请求码的,但是关于请求码是什么样子我就不清楚了.因为我看不懂这段代码.所以希望看到这个问题的长辈朋友能够帮帮我. 代码如下: protected int makeRequestCode(int requestCode) { if ((requestCode & 0xffffff00) != 0) { throw new IllegalArgumentException("Can only use lower 8 bi

angularjs-这段代码哪里有错啊,运行结果不对啊,哪位大神解决下。

问题描述 这段代码哪里有错啊,运行结果不对啊,哪位大神解决下. <!doctype html> Hello {{ clock}}! function MyController($scope, $timeout) { var updateClock = function() { $scope.clock = new Date(); $timeout(function() { updateClock(); }, 1000); }; updateClock(); }; 运行结果如下: 解决方案 请稍

css-哪位懂CSS的大神帮我翻译下,下面的这段话,翻译成中文

问题描述 哪位懂CSS的大神帮我翻译下,下面的这段话,翻译成中文 #bg{ display: none; position: absolute; top: 0%; left: 0%; width: 100%; height: 100%; background-color: black; z-index:1001; -moz-opacity: 0.7; opacity:.70; filter: alpha(opacity=70);} #show{display: none; position: a

js-jquery 有一段代码感觉不是很懂 请大家说下有什么用? 我怎么感觉它失效了

问题描述 jquery 有一段代码感觉不是很懂 请大家说下有什么用? 我怎么感觉它失效了 $("#txtDeviceName").formValidator({ tipid: "tiptxtDeviceName", onshow: "请输入测点名称", onfocus: "名称不超过10个汉字" }).InputValidator({ min: 8, max: 20, onerror: "名称4-10位汉字,请确认&

求助:下面这段代码我看不太懂,有没有好心人帮我添加一下注释,帮我理解一下。拜托拜托。

问题描述 usingSystem;usingSystem.IO.Ports;usingSystem.Threading;publicclassPortChat{//定义静态函数staticbool_continue;staticSerialPort_serialPort;publicstaticvoidMain(){stringname;stringmessage;StringComparerstringComparer=StringComparer.OrdinalIgnoreCase;Thre

哪位大神帮我注释这段代码,最好详细一点(AT89s**与霍尔元件测速报警应用)。有附电路的原理图

问题描述 哪位大神帮我注释这段代码,最好详细一点(AT89s**与霍尔元件测速报警应用).有附电路的原理图 5C #includeunsigned char code table[12]={0xc00xf90xa40xb00x990x920x820xf80x800x900xff0xBF};unsigned char code table2[12]={0x400x790x240x300x190x120x020x780x000x100xff}; sbit CS3020=P1^0;sbit SET=P

对象-java 抽象类有段代码没看懂!!!帮忙解释下

问题描述 java 抽象类有段代码没看懂!!!帮忙解释下 自己看视频自学到网络编程,发现下边的代码看不懂,自己也百度了很多,还是没理解好抽象类 OutputStream os=Socket.getOutputSteam(); os.write("加油".getBytes()): 这段代码没看懂,OutputStream抽象类不能直接创建对象,也没有子类去实现,为什么可以直接调用write(byte[] b) 方法? 解决方案 不能创建对象的意思是不能通过new outputstream

图片-谁能帮我看下这段代码什么意思?他有说过是配置文件,不过我没懂

问题描述 谁能帮我看下这段代码什么意思?他有说过是配置文件,不过我没懂 解决方案 就是一般的配置文件呀,用来程序动态读取数据的,数据维护简单方便,可以用来存储一些不太重要的数据, 具体实现可以用java,c#等等,相关java类有,XmlDocument,XmlElement 解决方案二: 存数据的文件,类似数组.json:只不过规则不同,不是key value了