VB中的Byval,ByRef在Delphi應該如何對應呢? |
尚未結案
|
vagrant
一般會員 ![]() ![]() 發表:29 回覆:72 積分:20 註冊:2003-07-04 發送簡訊給我 |
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi vagrant,
procedure TForm1.Button1Click(Sender: TObject); procedure test(x: Integer ; var y : integer); // x:Byval Y:ByRef begin x := 200; y := 200; end; var x,y : integer; begin x := 100; y := 100; ShowMessage('x=' IntToStr(x) ' ' 'y=' IntToStr(y)); test(x,y); ShowMessage('x=' IntToStr(x) ' ' 'y=' IntToStr(y)); end
------
Fishman |
jeff377
初階會員 ![]() ![]() 發表:9 回覆:60 積分:33 註冊:2004-08-10 發送簡訊給我 |
|
LexChou
一般會員 ![]() ![]() 發表:1 回覆:2 積分:0 註冊:2005-07-12 發送簡訊給我 |
|
bill534
一般會員 ![]() ![]() 發表:38 回覆:51 積分:17 註冊:2007-02-22 發送簡訊給我 |
ByRef SendData As Any 對應至Delphi有人使用過嗎!我用Pointer時陣列型參數OK,但單一的double,long等變數就沒用(回傳正常,但控制器沒有動作)?
ByRef SendData As Any, ByVal SendDataNum As Long, public Function sssSetServoStatus(ByVal hDev As Long, ByVal axisNumber As Long, ByVal state As Long) As Long tempInt(0), 2 * Len(tempInt(0)), vbNull, 0) End Function ByVal nMode As Long) If (nMode < SSS_OPMODE_IDLE Or nMode >= SSS_OPMODE_LAST) Then sssSetNcMode = SSS_ERROR Exit Function Else sssSetNcMode = sssIoControl(hDev, IOCTL_SSSNC_SET_NC_MODE, nMode, Len(nMode), vbNull, 0) End If End Function |
bill534
一般會員 ![]() ![]() 發表:38 回覆:51 積分:17 註冊:2007-02-22 發送簡訊給我 |
Dear
VB Function sssIoControl(ByVal hDev As Long, ByVal IoCtlCode As Long, ByRef ReceiveData As Any, ByVal ReceiveDataNum As Long) As Long DELPHI Var SendData,SendDataNum:integer,傳入 Record或Array 等類型時,程式可正常作業 , 但傳入 integer,double 等類型時 , 回傳OK , 但動作似乎没有反應 ! ![]() ![]() |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |