看板 Visual_Basic 關於我們 聯絡資訊
以下c程式做buffer用 int ReadBuffer(int Num) { if ( Num >= 0 && Num < 40 ) return (int)buf[Num]; else return 0x01; } // Func : Read Buffer VB程式宣告為 Private Declare Function ReadBuffer Lib "xxx" (ByVal Num As Long) As Long Private Sub Timer1_Timer() Dim a As Long Dim Num As Long Dim ReadBuffer(40) As Long a = ReadBuffer(Num) Text1.Text = a End Sub c程式buffer範圍內會回傳為十進制的值,若不在範圍內會回傳為1 但當我的Timer啟動後text所顯示的一直是0,但無任何的錯誤訊息 請問有可能是甚麼原因導致沒有收到c的回傳值? 或是程式哪裡有問題? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.241.189
Semisphere:readbuffer被你拿去宣告成陣列 11/19 23:46
caspermin:不好意思~不太明白您的意思?? 11/20 19:33
caspermin:可否說明要如何修改才能讀到值<(_ _)> 11/20 19:35
Leadgen:Function name 和內部陣列的名字一樣了。 11/21 11:59
caspermin:不是依照VB呼叫dll的方式應該是要設一樣的名稱 11/21 14:27
Semisphere:Dim ReadBuffer(40) As Long 這行砍掉 11/21 19:48
Semisphere:你外面已經宣告dll的函式,就已經可以直接使用 11/21 19:48
Semisphere:在sub裡面宣告跟外面重複的函式名稱,自然就被sub宣告 11/21 19:49
Semisphere:的陣列蓋掉,你a = ReadBuffer(Num)就等於從陣列取值 11/21 19:50
caspermin:你是說程式sub ReadBuffer 11/22 21:12
caspermin:裡面 a = ReadBuffer(Num) 11/22 21:13
caspermin:最後End結束這樣嗎? 11/22 21:14