作者JlTsai (紙片人 )
看板Visual_Basic
標題Re: [VB2008] 並未將物件參考設定為物件的執行個體?
時間Fri Sep 4 15:54:01 2009
會出現 Exception的程式碼似乎在這一段
上篇推文中 P大建議我將 Dim a as xxx = new xx()
但是我修改完會出現錯誤 例如以下紅色字
Private Sub timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles timer1.Tick
Dim port As Integer = 5000
Try
' 複雜影像至剪貼簿(Clipboard)
SendMessage(hwnd, WM_CAP_EDIT_COPY, 0, 0)
' 自剪貼簿(Clipboard)取得物件
Dim data As IDataObject = Clipboard.GetDataObject()
將上行改成
Dim data As IDataObject = New Clipboard.GetDataObject()
則會出現 型別'Clipboard.GetDataObject'未定義
' 建立記憶體的資料流
Dim memStream As New System.IO.MemoryStream()
If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
Dim image As Image =
CType((data.GetData(GetType(System.Drawing.Bitmap))), Image)
' 將影像依指定格式儲存至指定的資料流
image.Save(memStream, ImageFormat.Jpeg)
End If
' 將影像依指定格式儲存至指定的資料流
picLocal.Image.Save(memStream, ImageFormat.Jpeg)
' 回傳記憶體資料流之位元組陣列
Dim buffer As Byte() = memStream.GetBuffer
' 建立用戶端TcpClient
Dim tcpClient As New TcpClient(txtHost.Text, port)
' 取得用戶端的輸出入串流
clientStream = tcpClient.GetStream()
' 建立BinaryWriter
Dim binarywriter As New BinaryWriter(clientStream)
binarywriter.Write(buffer)
binarywriter.Flush()
binarywriter.Close()
memStream.Flush()
memStream.Close()
clientStream.Flush()
clientStream.Close()
tcpClient.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End Sub
請問該如何修改呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.127.205.249
1F:推 Peruheru:那是因為你這樣變成重複宣告啊XD 09/04 16:34
2F:→ Peruheru:看錯了,嘖 09/04 16:34
3F:→ Peruheru:那個東西是來自其他物件的話,就不需要做那改變 09/04 16:35
4F:→ Peruheru:但相對的,就要確定另外那個來源物件是否存在 09/04 16:36
5F:→ Peruheru:Clipboard.GetDataObject()看起來,後者是前者的方法 09/04 16:37
6F:→ Peruheru:也就是要先確定,前者物件是否存在 09/04 16:38
7F:→ Peruheru:我沒用過這個,不知道這東西是怎麼來的 09/04 16:38
8F:推 Peruheru:妳的錯誤出在哪?光是剪貼簿那部分我自己試可以用 09/04 16:50
9F:→ Peruheru:沒有被正確宣告的到底是誰?錯誤訊息應該有說 09/04 16:50
10F:推 fumizuki:New 要接的是類別名稱,不是方法 09/04 21:09
11F:→ fumizuki:而且 Clipboard.GetDataObject()不需要建立物件實體 09/04 21:11
12F:→ fumizuki:Dim text As String = Clipboard.GetText() 09/04 21:12
13F:→ fumizuki:就可以取得剪貼簿中的文字了 09/04 21:12
14F:推 fumizuki:Clipboard.GetDataObject() 取得一個物件 09/04 21:13