如何轉換或修改VB的語法成為BCB的語法 |
尚未結案
|
suparky
一般會員 發表:2 回覆:0 積分:0 註冊:2004-07-22 發送簡訊給我 |
各位BCB的高手,大家好!! 想請教如何轉換或修改VB的語法成為BCB的語法 如下列VB的模組ausb.bas(VB語法)去呼叫"ausb.dll",
現在想修改為C++ Builder的語法去呼叫這個DLL,
但不知道如何轉換修改...
可以提供我一個方向或告訴我如何轉換嗎? 謝謝!! ************************
VB Code (模組ausb.bas)
************************ *********
Part 1
*********
Declare Function ausb_start Lib "ausb.dll" (ByVal lngTmout As Long) As Long *********
Part 2
*********
Declare Function ausb_open Lib "ausb.dll" ( _
ByRef lnghDev As Long, _
ByVal lngMyid As Long) As Long ****************************************************** *********
Part 3
*********
Function ausb_read(lnghDev As Long, strReadDt As String, lngCnt As Long, lngRdCnt As Long) As Long
Dim i As Integer
Dim ret As Long
Dim pBuf As Long
ReDim pBuffer(lngCnt + 1) As Byte
pBuf = VB_GetAddress(pBuffer(0), 1, 1)
ret = ausb_read32(lnghDev, pBuf, lngCnt, lngRdCnt)
strReadDt = ""
If ret = 0 Then
For i = 0 To lngRdCnt
strReadDt = strReadDt & Chr(pBuffer(i))
Next i
End If
ausb_read = ret
End Function **************************************************
|
李國維
高階會員 發表:42 回覆:287 積分:235 註冊:2003-02-07 發送簡訊給我 |
Part 1,2
1.載入DLL
HINSTANCE dllhand = LoadLibrary("ausb.dll")
2.建立函數指標
//語法:typedef 回傳類別 ([..stdcall]* 類別名稱)(傳入類別);
typedef long (*ASUBSTART)(long);
ASUBSTART asubstart; //asubstart 就是函數指標
typedef long(*ASUBOPEN)(*long,long);
ASUBOPEN asubopen;
3.函數指標指向ProcAddress
//語法:函數指標 = (類別名稱)GetProcAddress(DLL-Handle,"FunctionName);
asubstart = (ASUBSTART)GetProcAddress(dllhand,"asub_start");
asubopen = (ASUBOPEN)GetProcAddress(dllhand,"asub_open");
4.釋放
FreeLibrary(dllhand); Part 3
long __fastcall asubread(Long lnghDev,AnsiString strReadDt,Long lngCnt,Long lngRdCnt) { int i; long ret ,pBuf; Byte *pBuffer; pBuffer = new Byte[lngCnt 1]; pBuf = VB_GetAddress(*pBuffer, 1, 1); ret = ausb_read32(lnghDev, pBuf, lngCnt, lngRdCnt); strReadDt = "" if (ret == 0 ) { for (i = 0; i < lngRdCn ; i ) { strReadDt = AnsiString(pBuffer[i]) } } //?? ausb_read = ret return ret; }suparky:大約是這樣.還是要努力去了解C的語法. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |