Fragensteller
mt.exe Fehler 31

Frage
-
Ich habe ein Projekt... das wollten wir multilingual machen (rc Option fm und so) ... als ich endlich rausgefunden hatte, wieso rc ohne Hinweis einfach nix tat, kam ich drauf, dass das verschissene Visual Studio 2010 einen Block für Deutsch(Schweiz) und einen für Deutsch(Deutschland) erstellt hatte, obwohl einer leer war... gut... also hab ich den einen manuell aus der .rc Datei genommen (weil, man halte sich fest -> rc kann KEINE multilinguale Konfiguration erzeugen, wenn die .rc Datei MEHRERE Sprachen enthält) ... keine Ahnung was die Idioten in Redmond rauchen, aber scheinbar tun sie's dauernd!
Gut... und jetzt kommt der Oberhammer: sobald ich diese zwei Blöcke durch einen einzigen Deutsch(Deuschland) Block ersetze, kackt der MT.EXE immer mit Fehler 31 ab... interessanterweise tut er das aber NICHT, wenn ich alles in einen Deutsch(Schweiz) Block packe...
Den Blödsinn mit dem Virenscanner kenn ich schon (hab den komplett abgeschaltet) ... gibt's für das Problem eine Lösung oder soll ich das sau teure und sau verschissene VS in die Tonne schmeissen und mir einen eigenen Compiler bauen? Könnte nämlich fast die einfachere Lösung sein!
Ah ja, ich bin etwas genervt von diesem elenden Oberschrott. Ist ja nicht das einzige was nicht geht!
Und es soll mir bloss keiner kommen mit "beruhige dich" oder "nenn die Typen nicht Idioten".
Rudolf
Alle Antworten
-
Scheinbar kackt alles ab, wenn man mt.exe + mui Projekt nutzen will... keine Ahnung wie ich das zum Laufen bringen soll... und jetzt meldet mir rc noch das hier:
error: <ein Pfad>\RCa03076(113) - resource type/item is in the neutralResources should be included in the localizedResoruce in rc config
WAS HEISST DAS? "Fleisch oben Brot kann nicht sein unten Mitte gleich Sandwich" ... ungefähr soviel Sinn macht der Scheissdreck für mich!!!!
-
Oh Mann, die Tools sind wohl mal wieder aus einer Kombination von <Murks>, <Würg> und <wir_sitzen_im_selben_Haus_aber_reden_auf_gar_keinen_Fall_miteinander> entstanden. Na gut, wie dem auch sei, ich hab jetzt eine Lösung gefunden... nämlich -> man nehme mt.exe und schmeisse das weg, dann baue man sich sein eigenes Tool und schon läuft's... echt zum kotzen diese Qualität! und was der Mist dann noch kostet! Und wenn man das Zeug Microsoft meldet, was passiert dann? "wir können's nicht reproduzieren, Fall abgeschlossen" ... haha, sehr witzig... Error 31 -> die können nicht mal angeben, was zum Henker das bedeutet!
Eine Fehlermeldung muss so aussehen:
EVT1034, cannot open file ('C:\meinOrdner\meineDatei.evt', 0x5)
und dazu gibt's noch eine Beschreibung:
Error EVT1034: Die Datei (Parameter1) konnte nicht geöffnet werden. Beim Versuch wurde der Win32 Fehler (Parameter2) zurückgegeben.
und in unserem Fall war das die 5 ... klarer geht's nicht... aber nö, Microsoft schreibt einfach "Error 31" ... geil, oder? Wie die Marktführer werden konnten versteh ich je länger je weniger...
-
Ich habe immer mehrere Sprachblöcke in meinen RC Dateien! Mindestens einen Sprachneutralen Block und einen sprachspezifischen.
Mein MT schmiert hier nicht ab.Ansonsten zum Umgehen des Fehlers: Du kannst das Manifest auch so einbauen und benötigst mt.exe doch gar nicht. Das Manifest kannst Du auch so einbetten. Haben wir mit VS-2005 und vorher ja für Vista auch nicht anders gemacht.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
-
Ja, genau das mit dem Umgehen mach ich jetzt, mein Buildserver muss dann aber selber prüfen, ob sich das Manifest verändert hat oder nicht und im Fall der Fälle alles neu anstossen...
Wenn ich rc mit Parameter /fm aufrufe und danach kompiliere, dann schmiert mt reproduzierbar und immer mit Fehler 31 ab. ... egal in welchem Projekt. Ausserdem liegt's nicht an einem Fehlzugriff oder so was, alles was mt will bekommt mt auch (der ProcessMonitor zeigt das)... kurz: mt ist fehlerhaft... aber auch rc ist Schrott. Wie blöd ist das denn, dass der schalter /fm und /q nicht funktioniert, wenn es mehr als eine Sprache in der .rc Datei hat? ... na ja, anderes Thema, gehört zwar in die gleiche Sparte.
-
Ist deine RC Datei Unicode?
Wenn nicht versuch das mal.
Ansonsten: Wein Dein Manifest eine eigene Datei ist, und diese im rc-Skript eingebettet wird, dann wird auch eine Änderung erkannt und die res Datei neu erzeugt.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de