Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

CWinThread stürtzt ab bei Methoden aufruf

Empfohlene Antworten

Veröffentlicht

Hallo zusammen

Ich habe ein Problem mit einem CWinThread.

Ich erzeuge einen Thread der die ganze zeit eine USB schnittstelle ausliest und Daten sended wenn welche zu senden sind.

Jedoch habe ich das Problem das wenn ich eine Methode des Threads im Thread selber aufrufe, stürtzt er mit einer "Unhandled exception" ab.


// Header File

class CCommunicator : public CWinThread {

public:

[INDENT]

 CCommunicator();

[/INDENT]


protected:

[INDENT]

 virtual ~CCommunicator();

[/INDENT]


private:

[INDENT]

bool m_bRun;

bool m_bMessageToSend;

// Andere Membervariabeln

[/INDENT]


public:

[INDENT]

void Run();

void Send(int nToSend[7]);

// Andere Methoden

[/INDENT]


}


// Cpp File

#include "CCommunicator.h"


void CCommunicator::Run() {

[INDENT]

// Initialiserung der Startdaten

m_Report.Bytes[0] = 255;

// etc..

Send(m_Report.Bytes);

While(m_bRun) {

[INDENT]

// Lesen und Schreiben ds USB Ports.

[/INDENT]


}

[/INDENT]

}

Beim Ausführen der Zeile "Send(m_Report.Bytes);" stürtzt er ab. Ich weis das dies Bedeutet das er die Methode nicht findet / einen NULL pointer auf sie hat. Der Thread wird volgendermassen gestartet:

m_pCommunicator = new CCommunicator();

m_pCommunicator->CreateThread(CREATE_SUSPENDED);

m_pCommunicator->InitInstance();

m_pCommunicator->ResumeThread();

m_pCommunicator->Run();

Habe ich noch irgendetwas vergessen?

Und warum erkennt er die Methode Send nicht? Er gibt beim Kompilieren keinen Fehler und auch keine Warnung.

Ich Programmiere mit WindowsXP Visual Studio 6.0 MFC app

Vielen dank für eure Hilfe

Freundliche grüsse

Neo336

Bearbeitet von neo336

m_pCommunicator->Run();

Damit startest du die Threadfunktion des neuen Threads im Kontext des erzeugenden Threads. Die Funktion läuft damit in zwei Threads gleichzeitig. Lass das weg.

Ich weis das dies Bedeutet das er die Methode nicht findet / einen NULL pointer auf sie hat.

Schildere bitte das beobachtete Verhalten (Was für eine Exception?), nicht deine Interpretation. Diese Schlussfolgerung ist nämlich falsch.

  • Autor

Damit startest du die Threadfunktion des neuen Threads im Kontext des erzeugenden Threads. Die Funktion läuft damit in zwei Threads gleichzeitig. Lass das weg.

ahh das wusste ich nicht vielen dank!

die Exception die auftritt ist:

Unhandled exception in MyProject.exe: 0xC0000005: Access Violation

Das war auch das Problem es Funktioniert nun

Vielen dank und Freundliche grüsse

Neo336

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.