将Oscilloscope的VB代码编写为C#代码

时间:2015-10-22 13:11:34

标签: c# .net vb.net

我通常使用示波器在VB中工作(示波器具有自己的操作系统)。现在我正在尝试制作一个C#可执行文件,它与我的VB代码完全相同,并在示波器上运行。

我正在尝试将以下VB代码写入C#:

Set app = CreateObject("LeCroy.XStreamDSO")
wave = app.Acquisition.C1.Out.Result.DataArray 
msgbox(wave(1))

它的作用基本上是连接到我的示波器软件并输出波形阵列的第一个元素。

这是我到目前为止在C#中尝试过的: 我在VS2015中制作了一个表格,并且由于我的示波器运行的是WindowsXP而且只安装了.NET 4.0,因此制作了目标.NET 4.0。

System.Type objType = System.Type.GetTypeFromProgID("LeCroy.XStreamDSO");
dynamic comObject = System.Activator.CreateInstance(objType);
var wave = comObject.Acquisition.C1.Out.Result.DataArray;
MessageBox.Show(wave(1));

基本上我将此代码放在表单上的按钮中。当我在示波器上以可执行文件的形式运行时,我得到错误:"应用程序中发生了未处理的异常。" "无法调用非委托类型"。

任何人都可以帮我解决我做错的事吗?非常感谢它。

1 个答案:

答案 0 :(得分:0)

由于它的.net4,您可以使用dynamic所以:

Type myOscApp= Type.GetTypeFromProgID("LeCroy.XStreamDSO");
dynamic AppInstance= Activator.CreateInstance(myOscApp);
AppInstance.Visible = true;