• delphi 自定义控件调用动态库,静态网页测试


      折腾着,自己摸索着走,会的,不会的,自己查。一门没学过的语言,虽然说很多的语法和用法和之前所学的很多的一样,但是句型和基础结构都不一样。会点,记点,防忘~~

      摸索着做了个demo.ocx控件,步骤如下:

         file -> new -> other -> ActiveForm ,为何用这个俺也不懂,从网上看到的。然后 edite -> add to interface 编写function 或者procedure,自己做了个function函数Get_DeviceOpen(Port, BaudRate: Integer): WideString; 输入两个int参数,输出的是WideString

         但不知道为何,add to Interface这个菜单按钮总是灰色的,使用不了,问了同事,在view ->  type Library那里右键选择 new -> method ,然后在 parameters那里编辑相应的参数;如图:使用的是function有返回的值,折磨了下将modify的值设置为图的类型就可以了。

    一直的在想着,pascal 没有用return来返回值,到底在函数里面,返回的是哪个的值,昨天想到今天,网上查不到,弄了弄,早上无意中看到人家将函数的名称进行赋值,才明白:

    function TActiveFormX.Get_DeviceOpen(Port, BaudRate: Integer): WideString;
        var resulted: Integer;
    begin
      resulted := open_device(Port,BaudRate);
      if(resulted <> 0) then
         begin
            Get_DeviceOpen := '打开端口失败'         //函数返回值
         end                            //此没有“;”
      else
         begin
            Get_DeviceOpen := '打开端口成功,波特率为'+inttostr(BaudRate)   //函数返回值
      end;

    end;

    在应用层上调用底层动态库接口函数,调用如下:

     function  open_device(const port:integer; const baud:integer):word; stdcall ;external 'mw_mt32.dll';
       function  get_version(const icdev:integer;const Ver,Verlen:PAnsiChar):word;stdcall ;external 'mw_mt32.dll';

    其中接口文档的说明如下:

    打开通讯接口

    HANDLE open_device(__int16 port,unsigned long baud);

    功能:初始化通讯端口

    参数:

    Port:通讯端口号,0、1、2、3分别代表串口1、2、3、4;

         对于USB口,该参数无效,可以设置为0.

    baud:通讯口为串口时表示波特率,其值可为1200~115200。

         对于USB口,该参数无效,可以设置为0.

    返回值:

    2.读取硬件版本号

      __int16 get_version(HANDLE icdev,unsigned char *Ver);

    功能:读硬件版本信息

    参数:icdev:通讯设备标识符

     len:硬件版本长度

     data_buffer:硬件版本信息

    返回值:

    <>0  失败

    =0  成功

         <=0  错误

    >0   通讯设备标识符

    使用静态网页调用我的中间ocx控件,在网页中插入控件的内容(如下):

    <body>
    <object classid="clsid:79198F0E-12AD-4585-A5E4-B51051A1850A" width="0" height="0" id="dtm" codebase="mw_mt.ocx"> </object>

    使用js脚本,在js脚本中调用控件的function如下: resulted = dtm.Get_DeviceOpen(port,BaudRate);

  • 相关阅读:
    吴恩达读书笔记【5】-流水线与端到端
    标准与扩展ACL 、 命名ACL
    VLAN间通讯 、 动态路由RIP
    HSRP热备份路由协议 、 STP生成树协议
    VLAN广播域划分
    应用层
    包格式及IP地址 、 网络层协议及设备
    传输层 、 应用层
    数据链路层解析 、 交换机基本配置
    网络基础3
  • 原文地址:https://www.cnblogs.com/mdevi/p/delphi.html
Copyright © 2020-2023  润新知