000
17.10.2006, 15:38 Uhr
www.pat
|
Hi! Ich benutze Microsoft Visual Studio .NET 2003 (VC++)
Ich will Strings aus der seriellen Schnittstelle einlesen und in ein ListView adden. Wegen den Timeouts des habe ich einen neuen Thread gemacht, in dem ich die Daten aus der Schnittstelle einlese. Da ich mit Threats noch keine Erfahrung habe blicke ich nicht durch, wie ich dem neuen Thread einen Zeiger, oder sonstwas übergeben kann.
Den Quellcode zum Erstellen des Threads habe ich etwas verändert (Original von www.CodeProject.com)
C++: |
long ComPort::StartScanner (void) { DWORD dwThreadId = 0; m_hThread = ::CreateThread( 0, 0, GetIDs, LPVOID(this), 0, &dwThreadId);
return 0; } DWORD WINAPI ComPort::GetIDs (LPVOID lpArg) { // Route the method to the actual object ComPort* pThis = reinterpret_cast<ComPort*>(lpArg); return pThis->GetIDs(); return 0; }
DWORD ComPort::GetIDs (void) { // Das will ich erreichen: Form1->listView1->Items->Add("Test: Gruß von GetIDs",0); }
|
Wenn ich an dem Code etwas verändere, also hier mal ein DWORD zu nem &RecievedData funktioniert es nicht mehr.
Kann mir bitte jemand sagen welcher Parameter dafür zuständig ist? Und wie nimmt der Thread den Zeiger entgegen? So etwa?
C++: |
DWORD ComPort::GetIDs (void,char* meinZeiger) { //... }
|
Vielen Dank für die Aufmerksamkeit!
Gruß
pAT
Edit: Schönheitsfehler weggemacht... Dieser Post wurde am 29.10.2006 um 17:53 Uhr von FloSoft editiert. |