從VC++到Visual Basic發送數據時,我在網上找到的教程不齊全或者是VB 6.0(過時在某些情況下)。在C++端,我有以下幾種::在我遇到的時間弄清這一點赫克一個.NET Framework
..... hwndExternalApplication = FindWindow(NULL,L「Dromocast Client」); SendMessage消息(hwndExternalApplication,WM_SETTEXT,NULL,(LPARAM)的 「Hello」); .....
「Dromocast客戶」是我的Visual Basic應用程序,而我檢查,以確保它不是NULL。事實上,我確信我在VB端獲得了一些數據。在我的Visual Basic身邊,我有如下::
Protected Overrides Sub WndProc(ByRef m As Message)
Select Case (m.Msg)
Case WM_SETTEXT
Dim strTemp As String
strTemp = System.Runtime.InteropServices.Marshal.PtrToStringUni(m.LParam)
MessageBox.Show("GOT THE MESSAGE, SETTING LOCAL VARIABLE")
End Select
MyBase.WndProc(m)
End Sub
當我發送數據超過它的垃圾,這意味着strTemp出來,因爲所有這些中國文字,並在Visual Basic程序我的標題欄被帶亂碼還有一堆漢字。我的猜測是我的「SendMessage函數」寫入錯了,還是我在做一些愚蠢的,但我不知道是什麼。我不是一個Windows程序員,所以我還挺想通過谷歌搜索來算出這個東西出來....任何幫助將不勝感激。
THANK YOU SO MUCH!我不知道我最初做錯了什麼,但它不起作用。清理了一下我的代碼,刪除了我沒有使用的dll函數調用,它的功能就像一個魅力。 – Fernando 2010-03-03 16:05:46