重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
我做過,但是具體忘記了。不過給你個提示:VB6生成的是COM組件,不是提供輸出函數過程的DLL無法通過普通的DLL聲明--調用函數。可以參考VB6中調用VB6的DLL(設:1.DLL class類名為:classtest 過程/函數名為:MTEST)調用
成都網站建設哪家好,找成都創新互聯!專注于網頁設計、重慶網站建設公司、微信開發、小程序設計、集團成都企業網站定制等服務項目。核心團隊均擁有互聯網行業多年經驗,服務眾多知名企業客戶;涵蓋的客戶類型包括:報廢汽車回收等眾多領域,積累了大量豐富的經驗,同時也獲得了客戶的一致稱譽!
dim objecttest as objectset object=createobject("1.classtest ")objtest.Mtest
手頭沒有VB6+NET工具 沒辦法,只能到這了,希望對你有幫助
新建---類庫---把你的函數放在新建的類庫中-----生成ClassLibrary1
在net程序中---引用----對應目錄下的ClassLibrary1.dll
對應的代碼定義如: Dim mydll As New ClassLibrary1.Class1
最后就可以用mydll調用你的函數MyFunction了: mydll .MyFunction(1, 2)
注意:vb.net編寫的DLL不能用API函數的方式通過Declare宣告,只能引用的方式使用
vb.net要編寫的DLL能被vb6.0引用,需要先在編譯屬性中選擇“為COM互操作注冊”打勾
然后在Visual Studio 2008 命令提示中運用RegAsm命令加/tlb命令生成tlb文件
例如:c:\ReleaseRegAsm ClassLibrary1.dll /tlb回車就會在當前目錄生成ClassLibrary1.tlb文件
vb6.0中引用ClassLibrary1.tlb即可。
你這個需求很奇怪,也不好實現
那你這個CloseForm在哪里調用?
ColseForm(Form Me){
Me.Close();
}
其它地方的窗體調用這個方法就直接用:CloseForm(this);
將寫好的類模塊里面的內容全部copy下來,新建一個activeX
Dll工程,粘貼到class里面去,文件-〉生成dll就可以了。
提醒:vb創建的是activeX
Dll,要用createobject方法調用!
建立個類庫項目,但是.net的類庫項目生成的dll只能給.net自己使用,所有要寫成.NET的COM組件才能給如VB6程序使用。
如下就是.net COM組件格式了。但是給別人用也要裝.net framwork
[Guid 為工具里創建,你還要用簽名一個.snk文件,然后把這個類庫項目屬性里加上這個簽名
簽名文件產生你可以到.net SDK運行命令 sn -k name.snk產生簽名文件,然后再項目里加上簽名文件。
namespace Test
{
[Guid("A7EB3BC2-FFB9-471b-BE23-8AAA365946F5")]
public class testclass
{
public testclass()
{
}
//一定要這個這是標明COM組件的入口地址,每個給外面接口的都要寫這個如[DispId(2]中間數字不能重復
[DispId(1)]
public string hello(string whatyouwantoencrypt)
{
return "hello!,you want to crypt:" + whatyouwantoencrypt;
}
然后再VB腳本里可以這樣調用
dim SppClient
Set SppClient= CreateObject("Test.testclass")
記的一定要[Guid("A7EB3BC2-FFB9-471b-BE23-8AAA365946F5")]
[DispId(1)]
和簽名,否則不能生成有用的COM組件。
比如有一個類是You.dll,里面有一個封裝好的方法是YouSub(byval a as system.array)
在工程里面,你在引用中,添加引用,選擇You.dll的路徑所在,添加引用;
添加引用后,要定義一個類,并實例化他
dim you as You=new You()
you.YouSub("參數")