我有一個VB6項目(Windows應用程序),我不得不在C#.net的現有VB6項目中重新開發一個模塊。help:從VB6項目調用C#winforms dll?
我在C#.net中開發的模塊應該是一個dll,並且應該包含一些窗體。我能夠從我的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入口點」
我不知道如何解決這個錯誤。我甚至懷疑,如果這是包含一些winforms的C#.net dll應該從VB6.0窗口應用程序調用的方式。
我應該在我的VB6代碼中實例化Class1
嗎?我如何解決這個錯誤? 我的方法是否正確?有沒有更好的方法來做到這一點?
TIA。
好吧,不是*唯一*的方式來做到這一點,但唯一的*理智*的方式來做到這一點:-P – Brannon 2009-12-17 09:40:11
THANKs。這非常有幫助。 但是,我仍然好奇。你能告訴我上面發佈的代碼有什麼問題嗎? – pavanred 2009-12-17 10:50:16
C-Pound Guru很好地總結了它。 – Brannon 2009-12-17 23:31:23