2011-11-11 24 views
0

私はdllからデータを取得しようとしていますが、それを行う方法はわかりません。VB - dll、文字列出力

私のコードは次のとおりです。

'Function 
Public Declare Function SET_XML_PATH Lib "EbmPapstFan.dll" (ByRef ruta As String) As Long 
Public Declare Function GET_PRODUCTS Lib "EbmPapstFan.dll" (ByRef ruta As String) As Long 

Sub Selec() 
     Dim ruta As String 
     Dim Int_A As Long, Int_B 

     ruta = "C:\ebmpapst\data\AC\" 
     Int_A = SET_XML_PATH(ruta) 'If Int_A=0 then they aren't mistake 

     Int_B = GET_PRODUCTS("") 
     Worksheets("Selec").Range("E2").Value = Int_B 'Nº products 
End sub 

結果は次のとおりです。

​​

これはInt_Aはまた0であるので、GET_PRODUCTSは私にその製品の数を与えるパスと間違いではありませんソフトウェアが持っています。マニュアルでは、この関数も文字列の文字出力を持っていると言います。

主な問題は、この他の文字列の出力をどのように取得するのか分かりません。

vb dll strange output in C#

答えて

0

彼らはそれ以外のものを出力していること方法はありませんので、宣言された関数の両方の出力が「ロング」とない「文字列」です。

あなたが参照するマニュアルを再訪して、それがどのように文書化され、文字列値の関数呼び出しが何であるかを確認することをお勧めします。

+0

このステートメントの 'ノーウェイ'部分はあまり真実ではありません。パラメータはbyRefであり、調整された値で返されます。 – Andrew

+0

それでは、Int_Aの直後のstr_Whatever = rutaのように簡単です。あなたが言ったように彼女が何を話しているのかについては、もっと詳細を必要とすることは間違いないでしょう。 – user85569

0

戻り値の型として2つの関数宣言はlongを示しますが、渡される文字列はbyValではなく、byValに渡されます。呼び出し中に調整されているパラメータを介して文字列値が返される可能性があります。

詳細については、こちらをご覧ください。

関連する問題