[英]How to Pass Byte Arrays as UDT Properties from VB6/VBA to C# COM DLL?
[英]how do you pass a C# COM interropt DLL as param in vb6
我有一个 C# DLL,它被用作一个类来包含关于文件的属性列表。
C# DLL 是 COM 可见的,并且能够在 VB6 中声明和实例化。
在我创建对象的 vb6 函数中..
Dim fileObj As New MyCSharpClass.FileProperties
我立即能够看到我的 C# FileProperties 对象可访问的所有不同属性。
fileObj.(intellisense) 向我展示了对象内任何可用内容的下拉列表
但是当我将对象传递给函数时..
GetProperties(fileObj)
当我在 GetProperties 中时
Public Function GetProperties(ByRef pfileObj As MyCSharpClass.FileProperties)
当我尝试让智能感知向我展示我可以使用的选项时..
它现在确实将 pfileObj 识别为我可以使用的变量,它不会出现在智能感知中
如果我尝试手动输入它,intellisense 将再次不会向我显示任何选项。
pfileObj.
有没有一种特殊的方法可以将 COM interropt 对象传递给它们没有在 VB6 内部声明的函数?
这根本不可能吗?
我试图避免创建返回字符串的函数,然后一次分配一个对象属性。
原因是因为您需要让 .NET 创建一个 TypeLib 文件,然后您可以从 VB6 中引用该文件。 VB6 将使用它来显示智能感知以及协助 VB6 如何调用您的 C# 对象。 你需要做以下几件事:
您可以在此处找到详细说明: http : //www.codeproject.com/Articles/3511/Exposing-NET-Components-to-COM 。 这篇文章可能很旧,但在大多数情况下,它仍然适用于 Visual Studio 的现代版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.