2014-10-28 66 views
-2

我的代码包含一个VB.Net类,我已经内置到将在C#-WPF程序中使用的.dll中,问题是当我尝试调用任何从.dll文件功能我得到一个错误说:从C#程序通过.dll调用VB.NET方法

的梅索德有一些invalide参数

我的VB代码:

Public Function PerformDCVoltageMeasurement_niDMM(ByRef dDMM_Reading As Double) As Boolean 
    Try 

     Call Initialize_niDMM(GetInstrumentAddress(sPXIInstrument).DeviceAddress, DC_VOLTS, 60, 100, 3.5) 
     Dim dTemp As Double 
     'Start the acquisition 
     NIpxiDMM.Initiate() 
     NIpxiDMM.Fetch(-1, dTemp) 
     dDMM_Reading = dTemp 
     NIpxiDMM.Dispose() 
     Return True 

    Catch 
     gsCurrentPXIDeviceAddress_dmm = "" 
     NIpxiDMM.Dispose() 
     Return False 
    End Try 
End Function 

和我的C#代码-wpf:

SwitchExecutive.SwitchExecutive SwitchControl = new SwitchExecutive.SwitchExecutive(); 
Double Jg; 
SwitchControl.PerformDCVoltageMeasurement_niDMM(out Jg); 

最后一条语句给出错误

了Methode有一些无效的参数

+2

'ByRef'是c#中的'ref',而不是'out'。 – 2014-10-28 11:28:59

+1

看看智能感知系统,它将向您显示正确的方法签名,或在网络中搜索** exact **编译器错误。 – CodeCaster 2014-10-28 11:31:11

回答

1

我认为它不喜欢你的呼唤与out参数的方法,因为VB.net不支持他们。尝试将其称为:

SwitchControl.PerformDCVoltageMeasurement_niDMM(ref Jg); 
+0

谢谢Anduril,它解决了我的问题^^ – user2933082 2014-10-28 11:58:45