C# 4.0 如何使用COM互操作从VB6使用结构?
下面是一个场景: 我有一个VB6项目。它包含一个通过ref接收variant类型参数的方法C# 4.0 如何使用COM互操作从VB6使用结构?,c#-4.0,vb6,com-interop,C# 4.0,Vb6,Com Interop,下面是一个场景: 我有一个VB6项目。它包含一个通过ref接收variant类型参数的方法 Function GetFilledInfo(data As Variant) 此方法使用结构填充接收的参数。此结构在我的VB6项目中定义如下 Public Type DATASTRUCTMAIN structChild As DATASTRUCTCHILD End Type Public Type DATASTRUCTCHILD m_bComputeRanges As Long End
Function GetFilledInfo(data As Variant)
此方法使用结构填充接收的参数。此结构在我的VB6项目中定义如下
Public Type DATASTRUCTMAIN
structChild As DATASTRUCTCHILD
End Type
Public Type DATASTRUCTCHILD
m_bComputeRanges As Long
End Type
我有一个C#程序,它通过引用VB6项目生成的ActiveX dll来调用此方法
我想在我的C#程序中声明VB6中定义的结构,并想使用VB6方法填充它
我该怎么做
提前感谢。我忍不住注意到您只传递了一个Long(除非您为了简洁起见截断了这些结构定义)。在这种情况下,只需更改VB6,使其公开一个返回Long 如果你有一个真正的结构 将结构定义移动到VB6项目中的公共类。然后,结构定义将通过COM向引用VB6项目的任何客户端公开 希望您能够在C#项目中使用它,并且能够声明该结构的实例。在C#项目的项目引用中确实有对VB6组件的引用,对吗?不太熟悉.Net COM互操作,因此对此不太确定 如果在C#项目中声明该结构的实例时遇到任何问题,可以将VB6结构更改为类吗