我有一個vb6項目,我在其中使用DLL庫做一些任務。對於這一點,我想補充它聲明,如該庫的所有功能模塊:從VB.net項目調用VB6原生dll問題項目
Declare Function myFunction Lib "abcdapi.dll" (ByVal hVar1 As Long, ByVal hVar2 As Long) As Long
當我調用此函數(和許多其他類似的),我能夠做的工作,並返回正確的長指針。但是當我嘗試通過VB.net執行相同的操作時(通過使用dllimport導入相同的庫並調用相同的函數),我沒有任何結果。雖然它確實返回了一些指針,但不會產生正確的結果。
Private Const ABCD As String = "abcdapi.dll"
<DllImport(ABCD)>
Public Shared Function myFunction(ByVal hVar1 As IntPtr, ByVal hVar2 As IntPtr) As IntPtr
End Function
當我嘗試調用上述函數時,它不起作用。我甚至嘗試使用函數在我的vb6項目中創建一個dll,並嘗試使用imports關鍵字來調用該新的dll,但這也不起作用。有什麼可能是這個問題,我如何使它工作。
你可以顯示一些調用函數的代碼嗎? vb.net如何「不起作用」?錯誤,錯誤的返回值,它是什麼? – MarkJ 2012-01-12 07:40:09
函數調用低於: – Rahul 2012-01-12 09:16:46
函數調用低於: ibOK = TM1ValBoolGet(hUser,voTemp) 在VB.net:Declare功能TM1ValBoolGet庫 「tm1api.dll」(BYVAL hUser只要,BYVAL vBool只要)作爲整數 在vb.net: <的DllImport(TM1APIDLL)>公共共享功能TM1ValBoolGet(BYVAL hUser作爲IntPtr的,BYVAL vBool作爲IntPtr的)作爲整數 端功能 我沒有這個功能的代碼,所以不知道是什麼發生在它,但功能的細節可以在這裏看到: http://publib.boulder.ibm.com/infocenter/ctm1/v9r5m0/topic/com.ibm.swg.im.cognos.tm1_api.9.5.2.doc /tm1_api_id14631tm1func_tm1valboolget.html – Rahul 2012-01-12 09:24:31