真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vb.net調(diào)用com,VBNET教程

VB6.0調(diào)用.net COM組件問題

調(diào)用.Net的

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),聶榮企業(yè)網(wǎng)站建設(shè),聶榮品牌網(wǎng)站建設(shè),網(wǎng)站定制,聶榮網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,聶榮網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

程序集

還是

COM組件

這是不同的,

如果你用Visual

Studio,那在項(xiàng)目的引用那里直接引用就可以了,.Net程序集和COM組件在不同的Tab頁里。

COM組件要先注冊(cè)才能看到

regsvr32

com.dll

vb.net的COM組件的編寫問題

我想了兩種思路,winform沒有findControl,只有個(gè)this.Controls.Contains("textBox1"),因此除了遍歷沒辦法了。。。

思路1:遍歷Controls,具體你自己完善下,

if(this.Controls.Count0)

{

foreach(Control c in this.Controls)

if(c.GetTepy==Tepyof(TextBox))

string str += ((TextBox)c).Text;

}

vb.net程序如何實(shí)現(xiàn)向電腦的Com口發(fā)送一段字符串信息,之后再接收顯示發(fā)送的字符串信息?

'vb.net的串口接收數(shù)據(jù)要用到委托

Delegate Sub SetTextCallback(ByVal InputString As String) '聲明一個(gè)委派類,并聲明符合函數(shù)參數(shù)有一個(gè),而其型態(tài)是字符串

Private Sub ShowString(ByVal comData As String)

txt_Re.Text = comData '將收到的數(shù)據(jù)入接收文字框中--- txt_Re.Text 是接收用的文本框

txt_Re.SelectionStart = txt_Re.Text.Length

txt_Re.ScrollToCaret()

End Sub

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived‘自動(dòng)接收事件

Dim inData As String = SerialPort1.ReadExisting

Dim d As New SetTextCallback(AddressOf ShowString)

Invoke(d, inData)

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '發(fā)送指令

SerialPort1.Write("123")

End Sub

在vb.net中,如何枚舉一個(gè)注冊(cè)的組件其開放的COM類的接口函數(shù)。

為什么增加的回答這么久還沒顯示。

我想知道你為什么要枚舉這些方法,是需要打印出來還是只是為了查看和調(diào)用?

1,如果只是為了查看和調(diào)用的話,不需要用代碼就能知道了。

打開VS,視圖-》對(duì)象瀏覽器。然后開了后,點(diǎn)瀏覽右邊的“。。?!保_了后。選COM活頁,再在里面選ThunderAgent 1.0 Type Library。再點(diǎn)添加。

添加好之后。在左邊的瀏覽窗口內(nèi)就有了,展開THUNDERAGENTLib下面有幾個(gè)類和接口,展開類就有方法了。

2,如果是需要用代碼枚舉并打印。網(wǎng)上有相關(guān)的代碼,C#寫的。我就不帖了。自己搜一下。改成vb.net相信應(yīng)該不會(huì)太難。

祝你好運(yùn)。

VB.NET EXE怎么調(diào)用指定的DLL

一般VB.NET調(diào)用DLL可以通過Declare 語句在模塊級(jí)用于聲明對(duì)動(dòng)態(tài)鏈接庫 (DLL) 中的外部過程的引用。

Private Declare Sub

myFunc1 Lib "mylib.dll"

(ByVal strName As String)

但是,VB.NET,C#.NET創(chuàng)建的DLL是個(gè)類庫,不能生成標(biāo)準(zhǔn)的 DLL 文件,不能采用declare ()的方式。應(yīng)該在解決方案資源管理器下的需要引用的項(xiàng)目的引用欄點(diǎn)擊鼠標(biāo)右鍵--添加對(duì)這個(gè)類庫[mylib.dll]的引用即可。

以下為VB.NET調(diào)用DLL代碼示例:

DllImport("kcomm.dll", CharSetCharSet:

=CharSet.Ansi, SetlastError:=True)

Private Shared Function gettxt(ByVal

port As Integer, ByVal wait As

Integer, ByVal _date As Long,

ByVal _time As Long, ByVal

filename As String) As Integer

End Function

根據(jù)實(shí)際情況更改你的DLL名稱、函數(shù)名、參數(shù)名和類型。

VB.NET調(diào)用DLL的只是COM組件,無法作為輸出函數(shù)的DLL,其實(shí)這只是個(gè)錯(cuò)誤的說法。其實(shí)MS非常狡猾,如果你是個(gè)VB瘋狂發(fā)燒友的話,應(yīng)該早就狂試出這種可以創(chuàng)建輸出函數(shù)的DLL的方法。

VB編譯文件實(shí)際上采取了兩次編譯的方法,首先是調(diào)用C2.exe產(chǎn)生*.OBJ文件,然后調(diào)用Link.EXE連接。如果在LINK的時(shí)候添加EXPORT選項(xiàng),實(shí)際上是可以輸出函數(shù)的。但是,在VB的工程選項(xiàng)中將這些屏蔽了。而且過分的是:VB在Build完成后會(huì)將OBJ文件刪除,這樣就無法手動(dòng)通過Link來創(chuàng)建我們需要的DLL了。不過我找到一個(gè)比較齷鹺的變通的方法,就是先創(chuàng)建一個(gè)Exe工程,在Form_Load事件里面寫下面的語句:

Sub Main

If MsgBox("哈哈",

vbOKCancel) = vbOK Then

Shell "link2.exe "

Command$

End If

End Sub

然后編譯為L(zhǎng)inkTemp.EXE,接下來將LINK.EXE改名為L(zhǎng)ink2.exe,將LinkTemp.EXE改名為L(zhǎng)ink.EXE。這樣在VB調(diào)用Link.EXE時(shí)會(huì)彈出對(duì)話框,處理就會(huì)中斷。這時(shí)就可以有機(jī)會(huì)將OBJ文件拷貝出來了。

然后我創(chuàng)建了一個(gè)ActiveX DLL工程,在這個(gè)工程里面添加一個(gè)Module并創(chuàng)建一個(gè)Public函數(shù)mathadd:

Public Function mathadd

(ByVal a As Long, ByVal

b As Long) As Long

mathadd = a + b

End Function

編譯這個(gè)工程,在Link的時(shí)候就會(huì)中斷。然后把創(chuàng)建的Class1.obj、Module1.obj、Project1.obj備份出來。然后就可以調(diào)用Link2.exe連接OBJ到DLL了,我的連接代碼是:

Link2.exe "e:\\vbdll\\Class1.obj"

"e:\\vbdll\\Module1.obj"

"e:\\vbdll\\Project1.obj"

"E:\\Program Files\\Microsoft

Visual Studio\\VB98\\VBAEXE6.LIB"

/ENTRY:__vbaS /EXPORT:mathadd /OUT:

"e:\\vbdll\\ProjectOK.dll"

/BASE:0x11000000 /SUBSYSTEM:

WINDOWS,4.0 /VERS

注意里面的/ENTRY和/EXPORT開關(guān),/EXPORT開關(guān)聲明了輸出函數(shù)mathadd。這樣就大功告成了,可以被其他語言引入,例如在VB中,只需要:

Private Declare Function mathadd

Lib "e:\\vbdll\\ProjectOK.dll"

(ByVal a As Long, ByVal b As

Long) As Long

vb.net通過com方法調(diào)用dll的問題

創(chuàng)建結(jié)構(gòu)體,用結(jié)構(gòu)體傳輸數(shù)據(jù):

Public Structure InValue

Public P As 類型

Public Q As 類型

'其他值定義

End Structure

Public Structure OutValue

Public A() As 類型

Public B As 類型

'其他值定義

End Structure

把Dll內(nèi)的方法改為:

Public Function calculation(value As InValue) As OutValue

Dim [out] As New OutValue

'處理函數(shù)

Return [out]

End Function

引用:

dim ffun as new pla.tua

dim inval as invalue

in.** = **

dim outp as outvalue = ffun.calculation(inval)


網(wǎng)頁題目:vb.net調(diào)用com,VBNET教程
本文URL:http://weahome.cn/article/hdjcii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部