2.1 VC中调用dll的说明
1.确认ghc715.dll在当前目录,与exe在同一目录或者在系统目录c:\windows\system
(对于win2k则在system32目录下)。
2.调用LoadLibrary加载dll:
gLibMyDLL = LoadLibrary("ghc715.DLL");
用完后在退出时应该释放:FreeLibrary(gLibMyDll);
3.调用win api的GetProcAddress函数得到dll中函数的指针:
readcard = (MYBEEP)GetProcAddress(gLibMyDLL,"readcard");
writecard = (MYDELAY)GetProcAddress(gLibMyDLL,"writecard");
4.调用例子:
int code=readcard(1,m_nTrack,data1,data2,2,timeout);
int code=writecard(1,m_nTrack,m_sData1.GetBuffer(150),
m_sData2.GetBuffer(150),2,timeout);
2.2 Vfp中调用dll的说明
1.确认ghc715.dll在当前目录,与exe在同一目录或者在系统目录c:\windows\system
(对于win2k则在system32目录下)。
2.声明函数:
DECLARE long readcard in ghc715.dll;
INTEGER port,;
INTEGER track,;
STRING @s1,;
STRING @s2,;
INTEGER model,;
INTEGER cmto
DECLARE long writecard in ghc715.dll;
INTEGER port,;
INTEGER track,;
STRING @s1,;
STRING @s2,;
INTEGER model,;
INTEGER cmto
3.调用例子:
local n
local s1
local s2
local err
local m
local t
str1=SPACE(200)
str2=SPACE(200)
err=readcard(1,n,@str1,@str2,m,t)
err=writecard(1,n,@str1,@str2,m,t)
2.3 VB中调用的例子
1.在Module中声明函数原型
Declare Function readcard Lib "ghc715.dll" (ByVal nPort As Long, ByVal nTrack As Long, ByVal sData1 As String, ByVal sData2 As String, ByVal nModel As Long, ByVal cmto As Long) As Long
Declare Function writecard Lib "ghc715.dll" (ByVal nPort As Long, ByVal nTrack As Long, ByVal sData1 As String, ByVal sData2 As String, ByVal nModel As Long, ByVal cmto As Long) As Long
2.调用示例:
Dim s1 As String
Dim s2 As String
Dim n As Long
Dim t As Long
Dim m As Long
Dim err As Long
(m = 1 or m = 2)(n= 1,2,3,4,5)
s2 = Trim(sOneThree.Text) + Chr(0)
err = writecard(1, n, s1, s2, m, t)
s1 = String(255, Chr(0))
s2 = String(255, Chr(0))
err = readcard(1, n, s1, s2, m, t)
2.4 Delphi中调用示例
1.定义函数原型:
Treadcard=function(n1:integer;n2:integer;s1:Pchar;s2:Pchar;n3:integer;n4:integer):integer;stdcall;
Twritecard=function(n1:integer;n2:integer;s1:Pchar;s2:Pchar;n3:integer;n4:integer):integer;stdcall;
THandle = Integer;
2.定义函数:
Form1: TForm1;
readcard: Treadcard;
writecard:Twritecard;
3.加载动态连接库:
Handle :=LoadLibrary('ghc715.DLL');
@readcard := GetProcAddress(Handle, 'readcard');
@writecard:= GetProcAddress(Handle, 'writecard');
4.调用:
(m = 1 or m = 2)(n= 1,2,3,4,5)
code:=readcard(1,n,p1,p2,m,s);
code:=writecard(1,n,p1,p2,m,s);
有关的参数参见示例源程序。
2.5 Power Builder调用示例
1.声明:
Function Int readcard(Int port,Int track,ref string data1,ref string data2,Int model,Int cmto) Library "ghc715.dll"
Function Int writecard(Int port,Int track,ref string data1,ref string data2,Int model,Int cmto) Library "ghc715.dll"
2.调用:
boolean bRead=true
int nTrack
int nModel
int nCmto
int err
string s1,s2
s1=space(200)
s2=space(200)
nTrack=integer(sle_track.text)
err=readcard(1,nTrack,s1,s2,,nModel,nCmto)
err=writecard(1,nTrack,s1,s2,nModel,nCmto)