У меня чертовски много времени, чтобы понять это, учебники, которые я нашел в Интернете, не завершены или предназначены для VB 6.0 (в некоторых случаях устарели). На стороне C ++ у меня есть следующее: *
.....
hwndExternalApplication = FindWindow (NULL, L "Клиент Dromocast");
SendMessage (hwndExternalApplication, WM_SETTEXT, NULL, (LPARAM) "Hello");
.....
«Клиент Dromocast» - это мое базовое визуальное приложение, и я проверил, чтобы убедиться, что оно не равно 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, поэтому я пытаюсь разобраться в этом, прибегая к помощи ... любая помощь будет принята с благодарностью.