[Gelöst]Probleme mit MaxGui und Icon.o
Übersicht

![]() |
MidimasterBetreff: [Gelöst]Probleme mit MaxGui und Icon.o |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist seltsam: Ich füge in meine BMAX-Programme immer das Programm-Icon als ICON.O File ein, dass ich aus einem ICON.ICO mit Hilfe einer Comandzeile "windres -i C:\makeicon\icon.rc -o C:\makeicon\icon.o" erstelle.
Bisher gab es noch nie Probleme damit. Nun wollte ich das zum ersten Mal mit einem MaxGui-Programm auch machen. Und da tauchen dann ganz seltsame Fehler in den GUI-Elementen auf. Kennt jemand den Effekt? ich habe es 10x probiert: ohne diese Zeilen keine Fehler, mit diesen Zeilen Bildfehler: BlitzMax: [AUSKLAPPEN] ?Win32 (Ich habe auch schon verschiedene bewährte *.O-Dateien ausprobiert. Selber Effekt.) Vielleicht aber kann mir jemand versichern, dass eine Kombination MaxGui und *.O-Datei bei ihm noch nie Probleme gemacht hat? |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
- Zuletzt bearbeitet von Midimaster am Di, März 06, 2012 13:32, insgesamt einmal bearbeitet
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Inhalt der icon.rc wäre eventuell noch sehr nützlich. Ausserdem die installierte MinGW Version, da windres afaik ein Teil davon ist.
.o sind übrigens kompilierte, assemblierte aber ungelinkte Objekte, ".o Dateien" sind also nichts anderes als Programmobjekte die du hinzufügst, kann irgend etwas sein. |
||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
das erste ist leicht: Die Icon.RC:
Code: [AUSKLAPPEN] 101 ICON C:\makeicon\icon.ico
Aber wie stellt man denn die installierte MinGW Version fest? Und du meinst es könnte was mit MinGW zu tun haben? Auf den "normalen" BMax-Programmen funktinonieren diese Programm-Icons ja. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kann es sein das in deinem .o das Manifest file fehlt?
Wenn ich mich recht erinnere wird das interne rausgeworfen wenn man extern ein resourcen file einbindet. |
||
Logic Gui Professional a Gui Designer for MaxGui |
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich selbst rate im Moment einfach mal ins Blaue, da Ressourcenobjekte für mich in MaxGUI funktionieren. (Siehe https://github.com/CounterPill...esource.rc )
Die Version von windres kannst du mit windres --version feststellen. (Die von MinGW (bzw gcc) allgemein mit gcc --version) EDIT: Siehe jsps Post, wird wohl das sein. |
||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Midimaster
Seitdem du dein Tutorial dafür gepostet hast, importiere ich auch immer Icons auf diese Art. Auch ich bin auf eben jene Probleme gestoßen. Zuerst würde ich mal wieder ein Manifest für Visual Styles einbinden, da das Manifest der MaxGUI durch den Import des Icons hinfällig wird, also einfach in deine Icon.rc ein Manifest mit reinschreiben, das kompilieren und dann einbinden. Soviel dazu, dann sieht das schon mal wieder besser aus. Dann die schwarzen Streifen hatte ich ebenfalls. Ich hatte irgendwo den Fehler begangen ein Label so zu positionieren, dass es über den Rand des Parents ging, also abgeschnitten wurde. Dadurch habe ich nicht nur an der betreffenden Stelle schwarze Streifen bekommen, sondern auch an anderen, die überhaupt nichts damit zu tun hatten. Es kann also sein, dass du irgendwo eben auch so einen Fehler hast. Den zu finden ist nicht so ganz einfach, da du quasi alles nach rechnen musst. Am besten ist du färbst mal die Hintergründe verschieden ein, dann siehst du schnell ob da was nicht stimmt. So hab ich es jedenfalls gemacht. Die Mühe hat bei mir gelohnt, denn danach waren alle Darstellungsfehler weg. Es gibt noch viele andere lustige Darstellungsfehler die so hervor gerufen werden, frag mich aber nicht wieso, ich weiß nur, dass sie mit dem korrigieren der Position und Größe des Labels verschwunden sind. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank für diesen ersten Hinweis! So wie ich es verstehe, trten diese "schwarze Ränder" aber auch nur in Verbindung mit dem Benutzen einer *.O-Datei auf, oder?
Ich will gerne mal sehen, ob sich hier Gui-Elemente überschneiden. Melde mich dann wieder.... Aber normal ist ja trotzdem nicht, dass eine kleine gelinkte Datei bei MaxGui solche Fehler hervorrufen kann, oder.... Jetzt zu dem "Manifest". Was ist das? Davon habe ich noch nie gehört. Im Forum gibt es auch keine Beiträge drüber. Wie mache ich das, was Du hier beschreibst? Am Ende werde ich die Erkenntnisse gleich an das damalige Tutorial anhängen. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ein Manifest ist eine Konfigurationsdatei, die geladen wird bevor das Programm ausgeführt wird. Darin können viele Informationen enthalten sein, u.a. die Anweisung für das Programm Visual Sytles bzw. Common Control v6.0.0.0 zu verwenden anstatt v5.x.x.x. Außerdem kann man darin festlegen, dass das Programm Adminstrator-Rechte benötigt, so dass bei Win Vista/7 die UAC-Meldung beim Ausführen erscheint.
Also das Manifest für Visual Styles sieht so aus: Code: [AUSKLAPPEN] <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> <dependency> <dependentAssembly> <assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*' /> </dependentAssembly> </dependency> </assembly> Wollte man nun noch bewirken, dass es automatisch als Administrator ausgeführt wird, so fügt man noch folgendes zwischen <assembly> und </assembly> ein: Code: [AUSKLAPPEN] <trustInfo xmlns='urn:schemas-microsoft-com:asm.v3'>
<security> <requestedPrivileges> <requestedExecutionLevel level='requireAdministrator' uiAccess='false'/> </requestedPrivileges> </security> </trustInfo> Die Datei benennst du am besten einfach "manifest.manifest" wobei es auf jeden fall *.manifest sein muss. Was davor steht ist eigentlich egal. Um das jetzt einzubinden schreibst du in deine *.rc Datei folgende Zeile: Code: [AUSKLAPPEN] 1 24 "manifest.manifest"
Das kompilierst du dann ganz normal und bindest es mittels Import wieder ein. Um es zu vertiefen kannst du deinen erstelle EXE ja dann mal mit dem ResHacker öffnen. Dort wirst du dein Manifest wiederfinden. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kannst ja dieses hier probieren, ob es ueberhaupt hilft:
http://jsp.logiczone.de/downlo...master.zip |
||
Logic Gui Professional a Gui Designer for MaxGui |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank an Propellator, jsp und Eisvogel! Das Einbinden des Manifest hat sofort die Bildfehler behoben. Es tut sehr gut, sich in einer Community wie der hier aufgehoben zu fühlen. Hier hätte ich alleine nicht wietergewusst. Von einem "Manifest" hatte ich noch nie gehört.
Ganz nebenbei konnte ich dadurch ein zweites Manko meiner Programme beheben: Ganz im Gegensatz zu den VB6-Programmen die ich früher machte, trugen die BMax-Programme nie irgendwelche File-Informationen in sich. Durch das Manifest konnte ich sie aber nun einbinden. In VB6 erledigte das die IDE! Was leider noch nicht funktioniert ist der Block, den mir User jps in seinem ZIP-File sendete. Baue ich diese Zeilen im Anschluss an den ersten Teil des Manifestes an, startet das Programm nicht mehr: Code: [AUSKLAPPEN] <root>
<PositionX>117</PositionX> <PositionY>291</PositionY> <IconPath>icons/ded1.ico</IconPath> <FileVersion>2011.12.24.0</FileVersion> <Description>Santa's Naughty List</Description> <Copyright>© Santa Claus</Copyright> <Comments>Reminds Santa of naughty kids</Comments> <CompanyName>North Pole LTD</CompanyName> <InternalName>WeKnowThemAll</InternalName> <ProductName>Christmas2011</ProductName> <ProductVersion>1.0.0.0</ProductVersion> <LegalTrademarks/> <OriginalFilename>Gotcha</OriginalFilename> </root> ich habe es so zusammengefügt: Code: [AUSKLAPPEN] <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> <dependency> <dependentAssembly> <assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*' /> </dependentAssembly> </dependency> </assembly> <root> <PositionX>117</PositionX> <PositionY>291</PositionY> <IconPath>icons/ded1.ico</IconPath> <FileVersion>2011.12.24.0</FileVersion> <Description>Santa's Naughty List</Description> <Copyright>© Santa Claus</Copyright> <Comments>Reminds Santa of naughty kids</Comments> <CompanyName>North Pole LTD</CompanyName> <InternalName>WeKnowThemAll</InternalName> <ProductName>Christmas2011</ProductName> <ProductVersion>1.0.0.0</ProductVersion> <LegalTrademarks/> <OriginalFilename>Gotcha</OriginalFilename> </root> Mache ich hier was falsch? Wird PositionX die Fensterposition beim Start festlegen? |
||
- Zuletzt bearbeitet von Midimaster am Mo, Feb 27, 2012 12:13, insgesamt einmal bearbeitet
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine Google-Suche hat leider überhaupt nichts zum Vorschein gebracht. Bist du dir sicher, dass diese Tags Teil einer Manifest-File sind? Auf MSDN ist bei der Manifest-Übersicht nämlich kein einziges der Tags gelistet.
Ah, und wäre cool, wenn du jeweils Code-Boxen benutzt und nicht Zitate, da sonst die Formatierung verloren geht. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Mididmaster
Sorry, mein Fehler! Ich habe einfach eines meiner Beispiele gegriffen und für dich gezippt. Das "Set.xml" File was du da listest ist nur ein File von Logic Gui, das erstellt diese Manifest, Resource und .o Dateien automatisch. In dem Set.xml werden nur die Benutzereingaben gesichert damit man nicht immer alles wieder neu eintippen muss, wenn man z.B. nur die Version ändern möchte. Sehr praktisch wenn man an mehreren Programmen arbeitet. Kannst die Datei also getrost ignorieren. |
||
Logic Gui Professional a Gui Designer for MaxGui |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group