【发布时间】:2009-12-17 09:35:15
【问题描述】:
我有一个 VB6 项目(Windows 应用程序),我必须在 C#.net 中的现有 VB6 项目中重新开发一个模块。
我用 C#.net 开发的模块应该是一个 dll 并且应该包含一些 windows 窗体。我能够从我的 vb6 项目中成功调用 c# 控制台应用程序 dll,但是当我尝试从我的 VB6 项目中调用带有 winforms 的 C# 类库时遇到了问题。
这是我为我的概念证明所做的 - 这是我的 C#.net 类库项目中的一个类文件。
namespace TestDll
{
public interface IClass1
{
void DisplayMessage();
}
public class Class1:IClass1
{
void IClass1.DisplayMessage()
{
MessageBox.Show ("Displyaing message");
}
}
}
我在同一个 nemspace 中有一个表单,我计划实例化 Class1 并在 C# winform 的 page_load 事件上使用它的对象。
在我的 VB6 项目中,我想显示我在 C#.net dll 中的表单。我用这段代码调用它 -
Private Declare Sub DislayMessage Lib "TestDll.dll" ()
Private Sub Command1_Click() //On button click event of the VB6 windows form
DislayMessage
End Sub
我收到一个错误 - “在 TestDll.dll 的 DisplayMessage 中找不到 DLL 入口点”
我不确定如何解决此错误。我什至怀疑这是不是应该从 VB6.0 windows 应用程序调用包含一些 winforms 的 C#.net dll 的方式。
我应该在我的 VB6 代码中实例化 Class1 吗?如何解决此错误?
我的方法正确吗?有没有更好的方法来做到这一点?
TIA。
【问题讨论】:
-
这能回答你的问题吗? Compile C#.net dll for VB6
标签: c# windows dll vb6 interop