调用DLL函数!简单问题!(100分)

  • 主题发起人 主题发起人 pd_ww2
  • 开始时间 开始时间
P

pd_ww2

Unregistered / Unconfirmed
GUEST, unregistred user!
一个简单问题!刚学delphi!想调用一个dll文件!
Netsw动态库说明:
该库中有如下四个函数,它们是:
int Read_Status(int COMx) //状态
int Turn_A_On(int COMx) //A网通
int Turn_B_On(int COMx) //B网通
int Turn_AB_Off(int COMx) //AB网均断开
入口参数:COMx = 0x01表示插在USB1口,COMx = 0x02表示插在USB口
返回值说明:01表示入口参数错,即输入非0x01,0x02值;02表示COM口被其它程序占用,
比如其它程序打开该COM口,排除方法是关闭可能的程序;03表示通信超时
只有一个Netsw.dll,请问在delphi 如何去调用这些函数啊??
请给出代码说明!多谢!
 
这样写就行了。
先声明要用到结构体,再写具体的函数,最后告诉系统这些函数出自那。此时要注意大小写。
unit SetupApi;

interface

uses Classes, Types;

;
Type
PSP_DEVINFO_DATA = ^TSP_DEVINFO_DATA;
TSP_DEVINFO_DATA = Record
cbSize : DWord;
ClassGuid : TGuid;
Devinst : DWord;
Reserved : Pointer;
end;

PSP_DEVICE_INTERFACE_DATA = ^TSP_DEVICE_INTERFACE_DATA;
TSP_DEVICE_INTERFACE_DATA = Record
cbSize : DWord;
InterfaceClassGuid : TGuid;
Falgs : DWord;
Reserved : Pointer;
end;


PSP_DEVICE_INTERFACE_DETAIL_DATA = ^TSP_DEVICE_INTERFACE_DETAIL_DATA;
TSP_DEVICE_INTERFACE_DETAIL_DATA = Record
cbSize : DWord;
DevicePath : Array [0..255] of Char;
end;

function SetupDiEnumDeviceInterfaces(DeviceInfoSet : THandle; DeviceInfoData : PSP_DevInfo_Data; InterfaceClassGuid : PGuid; MemberIndex : DWord; DeviceInterfaceData :PSP_DEVICE_INTERFACE_DATA):Boolean;StdCall;
//传回一个 USB 设备的信息群,包含指 USB设备 内的所有设备 (枚举)
function SetupDiGetDeviceInterfaceDetail(DeviceInfoSet : THandle; DeviceInterfaceData : PSP_Device_Interface_Data; DeviceInterfaceDetailData : PSP_DEVICE_INTERFACE_DETAIL_DATA ; DeviceInterfaceDetailDataSize : DWord;Var RequiredSize: DWord;DeviceInfoData : PSP_DEVINFO_DATA):Boolean;StdCall;
//传回 USB 设备的路径
implementation

function SetupDiGetClassDevs; external 'SetupApi.dll' name 'SetupDiGetClassDevsA';
function SetupDiEnumDeviceInterfaces; external 'SetupApi.dll' name 'SetupDiEnumDeviceInterfaces';


end.
 
我想您求教一个问题:我在用delphi编写串口程序时,使用的是Pcomm链接库,但在接受对方给我发的16进制字节时,受到的是一些奇怪的字符。比如,对方发51 01 7d ff,我收到的却是'Q'#1'}'?,请问我怎样才能将这些字符转化为我需要的16进制字节呢?请告诉我,谢谢!
 
后退
顶部