繁体   English   中英

从.NET到VB6的自定义对象的数组

[英]Array of custom object from .NET to VB6

我已经用C#编写了一个小型库。

在此库中,有两个ComVisible类。

第一个具有提供自定义对象数组的方法(在第二个类中声明)。

我使用小型c#应用程序测试了库,并且一切正常。 然后我做同样的事情VB6。 当我调用之前描述的方法时,就会出现问题。 我收到类型不匹配错误。

这是BV6代码:

   Private Sub Command1_Click()
       Dim Flussi As FMDriver.FMDriver  
       Set Flussi = New FMDriver.FMDriver
       [...]
       Dim temp() As FMDriver.FM
       temp = Flussi.GetElabData(station, codpar, data, tabella, nfunz, tiponfunz)
       [...]

这是自定义类FM

[ComVisible(true)]
public partial class FM
{
    public FM() { }

    [ComVisible(true)]
    public double Value { get; set; }

    [ComVisible(true)]
    public double IDisp { get; set; } 
}

任何想法? 如果我仅从响应中提取一个元素,则它可以工作。

编辑:

另一件事

Dim pippo As FM
Set pippo = CreateObject("fmdriver.fm")
pippo.Value = 100
pippo.IDisp = 43    
pippo = Flussi.GetElabData( [..cut..] )(4)

Pippo.Value有一个正确的值,即GetElabData在数组的第4个位置返回,但在Pippo.IDisp该值没有改变,它保持为43而不是获取新值。

最后,我创建了我的所有beautifull方法,这些方法返回自定义obj(适用于.NET应用程序)和几个专用于VB6的方法,并带有[ComVisible(true)]标签,该方法返回更简单的值数组(其他方法的结果)。 因此,我认为将自定义Obj返回VB6并不是很可靠,有时甚至根本无法正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM