Listenfeld problem

mußt Du austauschen und dort den Text aus cReadLine (die Ausgabe von 'ipconfig /all') ins Listenfeld schreiben.

wie meinst du das?

Und ich bekomme jetzt diese Fehlermeldung: Lokale Funktionsdefinitionen sind unzulaessig
 
Code:
pBottomView->LogProcessMessage(CString(cReadLine), pCommand);
mußt Du ersetzen mit
Code:
m_MyListCtrl.SetWindowText(CString(cReadLine));
Und wo kommt diese Fehlermeldung? Hast Du etwa die komplette Funktion mitsamt Funktionskopf in Deine Funktion reinkopiert?
 
Code:
void CPingerDlg::OnIPInfo() 
{
	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
 {
 	STARTUPINFO si;
 	PROCESS_INFORMATION pi;
 	SECURITY_ATTRIBUTES sa;
 	HANDLE hReadPipe, hWritePipe;
 	char * pcCommandLine = "ipconfig /all";
 	DWORD dwWaitResult = WAIT_TIMEOUT, dwBytesRead, dwExitCode, dwError;
 	char cReadLine[MAX_LINE_LENGTH];
 	BOOL bDoRead = TRUE, bOK = TRUE;
 	MSG AppMsg;
 
 	ZeroMemory(&si, sizeof(si));
 	si.cb = sizeof(si);
 
 	//Pipes erzeugen
 	sa.nLength=sizeof(sa);
 	sa.bInheritHandle=TRUE;
 	sa.lpSecurityDescriptor=NULL;
 	bOK = CreatePipe(&hReadPipe, &hWritePipe, &sa, 1048576);
 	if(!bOK)
 	{
 		//FEHLER
 		dwError = GetLastError();
 		bOK = FALSE;
 	goto PROCESS_END_NOPIPE; //ja, ich weiß: niemals goto verwenden. Wollte aber nicht so viele if's schachteln
 	}
 
 	//Pipes eintragen
 	si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
 	si.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
 	si.hStdOutput = hWritePipe;
 	si.hStdError = hWritePipe;
 	si.wShowWindow = SW_SHOWMINNOACTIVE;
 
 	//Prozess starten
 	bOK = CreateProcess(NULL,
 						pcCommandLine,
 						NULL,
 						NULL,
 						TRUE,
 		 		NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE,
 						NULL,
 						NULL,
 						&si,
 						?);
 	if(!bOK)
 	{
 		//FEHLER
 		dwError = GetLastError();
 	goto PROCESS_END_NOPROC; //ja, ich weiß: niemals goto verwenden. Wollte aber nicht so viele if's schachteln
 	}
 
 	//Auf Ende warten und Messages lesen
 	while(dwWaitResult != WAIT_OBJECT_0)
 	{
 		//Prozess beendet?
 		dwWaitResult = WaitForSingleObject(pi.hProcess, 10);
 		//Ausgaben aus der Pipe lesen
 		while(dwSizeLow = GetFileSize(hReadPipe, &dwSizeHigh))
 		{
 			ZeroMemory(cReadLine, MAX_LINE_LENGTH);
 		if(bDoRead = ReadFile(hReadPipe, cReadLine, MAX_LINE_LENGTH - 1, &dwBytesRead, NULL))
 			{
 				if(dwBytesRead)
 				{
     		        m_MyListCtrl.SetWindowText(CString(cReadLine));
 				}
 			}
 			else
 			{
 				dwBytesRead = GetLastError();
 			}
 		}
 		//Applikations-Messagequeue verarbeiten
 		if(PeekMessage(&AppMsg, 0, 0, 0, PM_NOREMOVE))
 		{
 			GetMessage(&AppMsg, 0, 0, 0);
 			TranslateMessage(&AppMsg);
 			DispatchMessage(&AppMsg);
 		}
 	}
 
 	bOK = GetExitCodeProcess(pi.hProcess, &dwExitCode);
 	if(bOK)
 	{
 		if(dwExitCode != 0)
 		{
 			//Prozeßrückgabe != 0
 			//...
 		}
 	}
 	else
 	{
 		//FEHLER
 		dwError = GetLastError();
 		bOK = FALSE;
 	}
 
 
 	//Close handles
 	CloseHandle(pi.hProcess);
 	CloseHandle(pi.hThread);
 
 PROCESS_END_NOPROC:
 	CloseHandle(hWritePipe);
 	CloseHandle(hReadPipe);
 
 	if(lpEnvironment != NULL)
 		delete[] lpEnvironment;
 
 PROCESS_END_NOPIPE:
 
 	GetParentFrame()->UpdateWindow();
 
 	return bOK;
 }
 	
}


So habe ich es kopiert. Bei BOOL StartProcessExample() bringt er diese Meldung.
Progge übrigens mit MS Visual C++ 6.0
 
Zuletzt bearbeitet:
Zurück