将.net表单作为参数传递给dll

时间:2019-12-12 11:57:51

标签: vb.net winforms com vb6

这是vb6 dll功能代码,它是作为vb.net exe的com引用而构建并添加的

 Public Function Access1(ByVal txt As String, ByRef res As Object)          
 MsgBox (TypeName(res))         
 MsgBox (res.Text)          
 End Function

在.net代码下面,我能够将组件作为参数传递给vb6 dll。

Dim s As New dllname.class      
s.Access1("abc", Textbox1)  

上面的代码有效,msgbox显示typename(res)的“文本框”。
但是,如果我尝试传递表单而不是Textbox,则在执行.net代码时会出现“ Specified cast is not valid”错误。
如何将表单对象传递给dll函数?

1 个答案:

答案 0 :(得分:0)

不幸的是,无法从COM对象传回表单。

为此,您需要创建一个包含表单的ActiveX,然后将其嵌入到当前应用程序中。

或者,如果您在COM组件中创建表单,则可以显示该表单,然后将所需的任何值返回给调用代码。

相关问题