[英]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.