none
VB6 呼叫C寫的DLL導致程式關閉 RRS feed

  • 問題

  • DLL的宣告如下:

    int TEST ( char* A,char* B,char* C )

    Input A,B 

    Output B,C

    VB6的Code如下:

    Public Declare Function Test Lib "XXX.dll" (ByVal A As String,ByRef B As String,ByRef C As String ) As Long

    Sub Cmd_TEST_Click()

    Dim retcode As Long

    Dim A as string *10,B as string *10,C as string *10

    retcode = TEST(A$, B$, C$)

    End Sub

    VB6再呼叫DLL的Test Function程式即會關閉,請問該如何調整?

    2015年11月5日 上午 07:22

解答

  • 要看你的編譯參數,此外呼叫 API 時,不用定長度字串,這是語言特性問題。

    API 傳輸時,參考型別要看編譯器,通常 char* 應該對應 byte()


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年11月5日 下午 02:50
  • 這通常需要了解Test這個函式內部的寫法才會知道外部要如何呼叫

    2015年11月7日 上午 02:37

所有回覆

  • 要看你的編譯參數,此外呼叫 API 時,不用定長度字串,這是語言特性問題。

    API 傳輸時,參考型別要看編譯器,通常 char* 應該對應 byte()


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年11月5日 下午 02:50
  • 這通常需要了解Test這個函式內部的寫法才會知道外部要如何呼叫

    2015年11月7日 上午 02:37