我有一个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