Programm hängt beim starten
-
Hallo,
ich in meiner OnInitDialog Funktion folgenden Quellcode geschrieben damit das Programm nur den Test ausführen kann wenn alle Verbindungen richtig sind. Das Problem aber das ich habe ist das sobald ich das Programm starte es irgendwie in der while schleife hängen bleibt. Erst wenn die Verbindungen alle Ok sind
erscheint mein Dialog vorher sehe ich nur eine Sanduhr. Kann da jemand meinen Code vieleicht mal nachschauen ich bekomme schon graue haare.Danke schon mal.
P.S.
Über die Funktionen _outp und _inp steure bzw. empfange ich ein externes Messgerät also nicht irritieren lassen davon.do { _outp(0x37A, 0); _outp(0x37A, 8); _outp(0x37A, 0); int nState = _inp(0x379); nError = nState & 8; if((nError == 8) && (bStateFlg == FALSE)) { if (m_image.Load(_T("C:\\Projekte\\Visual C++\\LVTest\\Vinca.gif"))) { hWnd = GetDlgItem(IDC_IMAGE); hWnd->ShowWindow(SW_SHOW); MessageBeep(0xFFFFFFFF); m_image.Draw(); bStateFlg = TRUE; } } if((nError == 0) && (bStateFlg == TRUE)) { hWnd->ShowWindow(SW_HIDE); bStateFlg = FALSE; break; } } while(nError != 0);
-
Wenn du eine Whileschleife machst dann wird es auch in einer Whileschleife hängen.
Man mach das auch nicht in OnInitDialog da hier der Dialog noch nicht gezeichnet ist. Und selbst wenn würde der Dlg nicht reagieren da die Messageschleife nicht ausgeführt wird.Man trennt immer Funktionalität von Oberfläche.
Baue also einen Thread ein der die Funktionalität zur verfügung stellt.[ Dieser Beitrag wurde am 10.07.2003 um 12:22 Uhr von Unix-Tom editiert. ]