轉:C# .NET中調用VB編寫的DLL代碼案例(我做了些修改)

來源:互聯網
上載者:User
轉自:http://www.taotechinfo.com/collect/2010222/n68565463.html .NET中如何調用VB6編寫的DLL。

  本文以C#為例,自己實踐了一下。希望對遇到相關問題的人有所協助。

  本樣本分成兩部分,第一,產生vb的dll。第二,在C#中進行調用。

  第一部分:

  1.首先在VB中選擇ACTIVX DLL工程類型。

  

  2.然後修改工程名,class檔案名稱,添加2個函數,如:

  

  方便copy,代碼如下:

  Public Function FncTestDLLForDotNet(instr As String) As Integer

  FncTestDLLForDotNet = 9

  End Function

  Public Function FncTestDLLForDotNet2(instr As String) As Integer

  FncTestDLLForDotNet2 = 99

  End Function

  3.然後從檔案菜單中選擇產生TestDLLProject1.dll,即可產生DLL。

  下面為第二部分:

  1.開啟vs2005,選用語言c#,工程類型為一個window application即可。

  在form上添加一個按鈕。如:

  

 

我加的: 把TestDLLProject1.dll拷貝到System32檔案夾下

  2.在方案總管中,右鍵點引用,在彈出的對話方塊中選擇瀏覽,找到System32裡的TestDLLProject1.dll,選中它,點確定。即可加入到引用中。如:

  

  添加完後,會看到在引用中已經增加了對這個dll的引用,

  

  3,最後一步了編寫按鈕的代碼,來調用這個vb的dll中的方法。

  雙擊form上的button,在button的click事件中加入如下代碼:

  TestDLLProject1.TestClass1 tc = new TestDLLProject1.TestClass1();

  string ss = "kkkk";

  int i = tc.FncTestDLLForDotNet(ref ss);

  int i2 = tc.FncTestDLLForDotNet2(ref ss);

  MessageBox.Show(i.ToString() + " " + i2.ToString());

  好,按ctrl+shift+b,編譯工程,再按f5運行,點擊按鈕,如,成功彈出結果。

  

  

 

 如果要移植到其他電腦上,需要把TestDLLProject1.dll複製到該機的System32檔案夾下,並在“運行”中使用regsvr32 TestDLLProject1.dll這條命令來註冊該組件(可能有的組件不需要註冊吧),才能成功移植到其他電腦。否則會報錯“檢索COM類工廠中CLSID為{ 一串字元 } 的組件時失敗,原因是出現以下錯誤:80040154”

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.