使用带有C#的CANoe COM服务器时出现问题

问题描述 投票:-1回答:1

我试图通过C#中的CANoe-COM服务器在特定的CANoe配置中执行一些CAPL功能。但我遇到了错误。

在这里,我在CANoe-COM服务器中声明两个类的对象:应用程序(打开CANoe配置)和CAPLFunction(在配置上运行一些CAPL功能,比如打开一个面板),按一下按钮在一个简单的Windows窗体中。代码如下:

    private void button1_Click(object sender, EventArgs e)
    {
        CANoe.Application CANoe_big = new CANoe.Application();
        CANoe_big.Open(@"All_neu.cfg");

        CANoe.CAPLFunction Neu = new CANoe.CAPLFunction();

    }

当我在Visual Studio中键入这些函数时,没有指出错误。即使在运行程序时,表单也会显示,单击按钮时,配置“All_Neu.cfg”也会打开。但在那之后,系统抛出了这个错误:“类未注册,HRESULT:REGDB_E_CLASSNOTREG”。它突出了在抛出错误时声明CAPLFunction对象的行。

这很奇怪,因为应该没有问题,对吧?我的意思是,CANoe配置正确打开,所以CANoe-COM服务器还活着。

事实上,我注意到COM服务器中任何其他类的任何对象,如Bus或Write,都会导致相同的错误。配置确实打开了,但之后什么都没有。

关于为什么会发生这种情况的任何想法?

c# com canoe
1个回答
0
投票

您无法创建自由浮动的空CAPLFunction对象。

CAPL功能必须出现在刚刚打开的Config中。之后你可以得到它

var caplFunc = CANoe_big.CAPL.GetFunction("<functionname>");

然后,您可以通过调用执行它

caplFunc.Call(...);

检查CANoe文档中名为Technical References - > COM Interface - > Object Hierarchy的部分。

© www.soinside.com 2019 - 2024. All rights reserved.