📄 unit_dll.pas
字号:
unit Unit_dll;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, ToolWin, StdCtrls, ImgList, ExtCtrls, NMUDP,winsock;
const MAX_RECEIVE_BUF=1024; //最大接收缓冲区
const MAX_SEND_BUF=1024; //最大发送缓冲区
const gprs_dll='wcomm_dll.dll';
const gprs_smm='gprs_smm.dll';
const misc='misc.dll';
type
// 用户注册信息结构
gprs_user_info=record
m_userid:array[1..12] of char; //终端模块号码
m_sin_addr:Cardinal; //终端模块进入Internet的代理主机IP地址
m_sin_port:word; //终端模块进入Internet的代理主机IP端口
m_local_addr:Cardinal; //终端模块在移动网内IP地址
m_local_port:word; //终端模块在移动网内IP端口
m_logon_date:array[1..20] of char; //终端模块登录时间
m_update_time:array[1..20] of char; //终端模块更新信息时间
m_status:byte; //终端模块状态, 1 在线 0 不在线
//m_pid:array[1..12] of char;
end;
type
//用户数据结构
data_record=record
m_userid:array[1..12] of char;
m_recv_date:array[1..20] of char;
m_data_buf:array[1..MAX_RECEIVE_BUF] of char;
m_data_len:word;
m_data_type:byte;
end;
type
Arr12 = array[1..12] of Char;
Arr16 = array[1..16] of Char;
Arr256 = array[1..256] of Char;
Arr512 = array[1..512] of Char;
Arr1024 = array[1..1024] of Char;
//下面定义的时函数类型,用于指向动态库中的函数
function start_gprs_server(a:HWND;b:Cardinal;c:Integer;d:PChar):Integer;stdcall;
function start_net_service(a:HWND;b:Cardinal;c:Integer;d:PChar):Integer;stdcall;
function do_read_proc(var a:data_record;b:PChar;c:boolean):Integer;stdcall;
procedure cancel_read_block();stdcall;
function stop_gprs_server(a:PChar):Integer;stdcall;
function stop_net_service(a:PChar):Integer;stdcall;
function do_close_all_user(a:PChar):Integer;stdcall;
function do_send_user_data(a:PChar;b:PChar;c:Cardinal;d:PChar):Integer;stdcall;
function get_user_at(a:Cardinal;var b:gprs_user_info):Integer;stdcall;
function get_max_user_amount:Cardinal;stdcall;
function do_close_one_user(a:PChar;b:PChar):Integer;stdcall;
function SetWorkMode(nWorkMode: integer): integer; stdcall;
function KillProcess(a:PChar):Integer;stdcall;
function DisConnectRas(a:PChar):Integer;stdcall;
function GetConnEntryName(a:PChar):Integer;stdcall;
//The Following function is SMM
//int SMMInit(char *,int,char *,DCB *,char *,char *,int);
function SMMInit(var a:Arr16;b:Integer;var c:Arr16;var d:DCB;var e:Arr12;var f:Arr12;g:Integer):Integer;stdcall;
function SMMFree:Integer;stdcall;
function SMMSetting(var a:Arr12;b:Integer):Integer;stdcall;
function MakeDTUOnLine(a:Integer;var b:Arr12):Integer;stdcall;
function SendDataToDTUBySM(var a:Arr12;var b:Arr256;c:Integer;d:Integer):Integer;stdcall;
implementation
//gprs_dll
function start_gprs_server; external gprs_dll name 'start_gprs_server';
function start_net_service; external gprs_dll name 'start_net_service';
function do_read_proc; external gprs_dll name 'do_read_proc';
procedure cancel_read_block; external gprs_dll name 'cancel_read_block';
function stop_gprs_server; external gprs_dll name 'stop_gprs_server';
function stop_net_service; external gprs_dll name 'stop_net_service';
function do_close_all_user;external gprs_dll name 'do_close_all_user';
function do_send_user_data;external gprs_dll name 'do_send_user_data';
function get_user_at;external gprs_dll name 'get_user_at';
function get_max_user_amount;external gprs_dll name 'get_max_user_amount';
function do_close_one_user;external gprs_dll name 'do_close_one_user';
function SetWorkMode;external gprs_dll name 'SetWorkMode';
//gprs_smm
function SMMInit;external gprs_smm name 'SMMInit';
function SMMFree;external gprs_smm name 'SMMFree';
function SMMSetting;external gprs_smm name 'SMMSetting';
function MakeDTUOnLine;external gprs_smm name 'MakeDTUOnLine';
function SendDataToDTUBySM;external gprs_smm name 'SendDataToDTUBySM';
function KillProcess;external misc name 'KillProcess';
function DisConnectRas;external misc name 'DisConnectRas';
function GetConnEntryName;external misc name 'GetConnEntryName';
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -