我通常在VB中使用我的示波器(示波器有它自己的操作系统)。现在我正在尝试制作一个C#可执行文件,它与我的VB代码做同样的事情,并在示波器上运行它。
我正在尝试将以下VB代码写入C#:
Set app = CreateObject("LeCroy.XStreamDSO")
wave = app.Acquisition.C1.Out.Result.DataArray
msgbox(wave(1))它所做的基本上是连接到我的示波器软件,并输出波形阵列的第一个元素。
这是我到目前为止在C#中尝试的方法:我用VS2015制作了一个表单,并将目标.NET设置为4.0,因为我的示波器运行的是WindowsXP,而它只安装了.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));基本上,我将此代码放在表单的按钮中。当我在示波器上将其作为可执行文件运行时,我得到错误:“您的应用程序中发生了未处理的异常。”“无法调用非委托类型”。
有人能帮我纠正我做错了什么吗?会非常感激的。
发布于 2015-10-22 21:27:49
因为它是.net4,所以你可以使用dynamic:
Type myOscApp= Type.GetTypeFromProgID("LeCroy.XStreamDSO");
dynamic AppInstance= Activator.CreateInstance(myOscApp);
AppInstance.Visible = true;https://stackoverflow.com/questions/33281882
复制相似问题