Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Viele Fehler nach FormatMessage

Mitglied: nullplan001

nullplan001 (Level 1) - Jetzt verbinden

24.10.2006 um 20:43 Uhr, 4163 Aufrufe

Nachdem ich schon zwei Usenet-Foren damit belästigt habe, seid ihr jetzt auch dran .

Hi all,
wie nicht anders zu erwarten war, habe ich ein Problem mit dem Win-API. Ich habe schon einiges an dem Programm gefixt, aber irgendwie geht es immer noch nicht.
Ich wollte mir die Arbeit ersparen, wegen jeden Fehler-Codes, den mir meine Apps zurückgeben können, in der winerror.h (oder wie die heißt) nachzugucken. Also schrieb ich folgendes Programm (knappe Übersetzung nach C, weil kürzer):
01.
char string[256]; 
02.
dword processed, code, stdout, stdin; 
03.
 
04.
int __stdcall main() 
05.
06.
  stdin = GetStdHandle(STD_INPUT_HANDLE); 
07.
  stdout = GetStdHandle(STD_OUTPUT_HANDLE); 
08.
  WriteConsoleA(stdout, "Bitte Fehlercode eingeben: ", 28, &processed, NULL); 
09.
  ReadConsoleA(stdin, string, 10, &processed,  NULL); 
10.
  string[10] = 0; 
11.
  code = strtol(string, &processed, 10); 
12.
  stdin = FormatMessageA( 
13.
    FORMAT_MESSAGE_FROM_SYSTEM | 80, 
14.
    NULL, 
15.
    code, 
16.
    SUBLANG_GERMAN << 10 | LANG_GERMAN, 
17.
    string, 
18.
    255, 
19.
    NULL 
20.
  ); 
21.
  string[stdin] = 0; 
22.
  CharToOem(string,string); 
23.
  WriteConsoleA(stdout, string, stdin, &processed, NULL); 
24.
  return 0; 
25.
}
Nach allen API-Funktionen wird auf deren Fehlschlag geprüft. Wenn sie fehlgeschlagen sind, beendet sich das Programm mit dem letzten Fehlercode (GetLastError()).
Nun habe ich ein interessantes Problem: Wenn ich das Programm starte und "80" eintippe, funktioniert alles. Wenn ich irgend etwas anderes eintippe, wird mir etwas über einen Fehler im Code nachgesagt. Manchmal ist es eine Acess Violation, manchmal privileged code. Es scheint so, als würde mein Code irgendwo hin hüpfen, wo er nicht hin soll. Nur habe ich keine Ahnung, was ich dagegen tun soll.
Interessant ist, dass ohne den Aufruf zu CharToOem und die dazugehörigen Verrenkungen, um eax zu erhalten, keine Fehler entstehen... nur dass die Meldung eben sehr blöd aussieht, wenn sie Umlaute enthalten würde (tut sie nach ihrer Verhackstückung nicht mehr).
Ich könnte natürlich mir die englischen Nachrichten antun und so die Sache mit CharToOem umgehen. Aber ich will dem Problem nicht aus dem Weg gehen, ich will es lösen.
Laut Dr. Watson kommt es in einer Symbol-losen Funktion zu dem Fehler. Das könnte entweder meine Hauptfunktion sein, oder irgendeine undokumentierte Windows-Funktion. Da der call-Stack aber ansonsten leer ist, tippe ich mal auf ersteres.
Kann jemand helfen?
tia und tschö,
Markus
P.S.: ich verwende Yasm und ALINK.
Ähnliche Inhalte
Batch & Shell
Fehler in Schleife
gelöst Frage von miczarBatch & Shell2 Kommentare

Hallo zusammen, nachdem ich das letzte Problem weitestgehend selber lösen konnte, stehe ich nun vor einem neuen. Dieser Code ...

Multimedia
XMind Fehler
Frage von MakromanMultimedia2 Kommentare

Hallo an alle, ich habe mal eine Frage ich habe das Programm XMind auf meinem Rechner aber seit kurzem ...

Windows Server
Gpupdate Fehler
gelöst Frage von rudeboyWindows Server5 Kommentare

Hallo zusammen! Server: SBS2003 (bitte keine Diskussion deswegen, ist nur ein Daddelnetz) Client: W7 C:\Windows\system32>gpupdate Die Richtlinie wird aktualisiert ...

Server
Fehler in jQuery
Frage von YanmaiServer7 Kommentare

Hallo Leute, ich wollte Daten über jQuery an eine PHP Datei senden, aber es kommt ein Fehler. Egal wie ...

Neue Wissensbeiträge
Internet

Europa baut Zensurinfrastruktur auf: EU-Parlament stimmt für Upload-Filter, Leistungsschutzrecht und gegen KI-Forschung

Information von Frank vor 21 StundenInternet6 Kommentare

Eine sehr schlechte Entscheidungen für die Zukunft Europas ist gefallen: Der Rechtsausschuss im EU-Parlament stimmte heute morgen in einer ...

Windows 10

Mikrofon von Headset geht nach Update auf Windows 10 1803 nicht mehr

Tipp von Deepsys vor 3 TagenWindows 102 Kommentare

Ich verwende ein Plantronics Headset das per USB mit dem Windows 10 PC verbunden ist. Damit kann ich auch ...

Video & Streaming

Ruckelfreies Fernsehen auf Smartphone oder Tablet - in SD oder gar HD - Eine Alternative zum Fritz DVB-C Receiver

Anleitung von power-user vor 3 TagenVideo & Streaming9 Kommentare

Wer kennt das nicht: Man möchte gemütlich auf dem Balkon sitzen und vielleicht grillen und dabei das WM-Spiel gucken ...

Erkennung und -Abwehr
Trendmicro WFBS 10 ist in deutsch verfügbar!
Tipp von VGem-e vor 4 TagenErkennung und -Abwehr4 Kommentare

Servus Kollegen, downloadbar unter

Heiß diskutierte Inhalte
Instant Messaging
Whats App Business am PC einsetzen
Frage von thomasreischerInstant Messaging27 Kommentare

Hallo zusammen, wir würden demnächst gerne WhatsApp Business verwenden um den Kontakt zwischen Kunden und Mitarbeitern zu erleichtern. Natürlich ...

Windows 7
Windows 7 Benutzer wechsel nicht möglich
gelöst Frage von OSelbeckWindows 727 Kommentare

Hallo, ich habe hier einen Windows 7 Rechner, der in der Domäne war. Jetzt passiert beim starten, das ich ...

Windows Netzwerk
IP-Adresskonflikt
Frage von Turbo-MasterWindows Netzwerk20 Kommentare

Hallo zusammen, ich habe ein Problem mit unserem Netzwerk unter Windows Server. Ständig erhalten wir die Meldung, dass ein ...

Festplatten, SSD, Raid
RAID auflösen Synology DS213j!
gelöst Frage von Hendrik2586Festplatten, SSD, Raid19 Kommentare

Guten Morgen meine Lieben! :) Diese Frage wird sich sicherlich schon der ein oder andere gestellt haben. Es geht ...