.exe Builder
-
Was willst du den beilegen? das ist doch schon alles in der EXE!
-
Aber die Subexe muss sich doch beim Start die Informationen aus der String Table holen. Und die muss ja dann wohl beigelegt werden.
-
Deine Builder EXE mit integrierten Subprogramm
*---------------------------* | | | Builder.exe | | | | | | Resource | | *---------------------* | | | | | | | Subprogramm | | | | | | | | | | | | Resource | | | | *---------------* | | | | | Text | | | | | | Bild usw. | | | | | *---------------* | | | *---------------------* | *---------------------------*Dein Subprogramm nach dem extrahieren
*---------------------------* | | | Subprogramm.exe | | | | | | Resource | | *---------------------* | | | | | | | Text | | | | Bild usw. | | | | | | | *---------------------* | *---------------------------*Nun verändert dein Builderprogramm die Resourcen des Subprogramms.
Und dein Subprogramm holt sich die Texte/Bilder aus seiner eigenen Resource.Wo siehst du hierbei eine zusätzliche Datei die nicht in der EXE steckt?
-
Das verwirrt mich nur noch mehr...
Das Subprogramm entsteht ja aus einer RT_RCDATA Resource, wie soll ich denn in eine .exe die erst aus einer anderen Resource entsteht eine Resource einbinden, die dann auch noch mal von einem Programm verändert wird. Wenigstens etwas Sourcecode würde die Sachen vielleicht klarer machen...
-
Lies dir meinen letzten Beitrag bitte noch einmal durch.
Pass mal auf:
Definitionen:
Kompilat = die .exe, die du weitergeben möchtest
Builder = die .exe, die das Kompilat so verändert, dass es wie von dir gewünscht ein Bild oder ähnliches enthält.Vorgehen:
Dein Kompilat ist so programmiert, dass es aus seinen EIGENEN Ressourcen das Bild und den Text lädt und diese anzeigt.
Dein Builder nimmt das Kompilat und aktualisiert in DESSEN Ressourcen das Bild und den Text via UpdateResource().Effekt:
Nachdem der Builder das Kompilat bearbeitet hat, zeigt es das jeweils gewollte Bild und den jeweils gewollten Text an.@VergissEs
In meinem Beispiel hier ist das Kompilat nicht als Resource im Builder enthalten. Das war mir schon bewusst, aber ich glaube, anders versteht er es nicht ...
-
Ich versuch mich gerade dran, allerdings arbeite ich nicht mit MFC, weshalb ich die Funktion von Codeproject nicht nutzen kann (CString scheint only MFC zu sein). Ich guck mal ob AnsiString ähnlich Funktionen wie GetBuffer und GetLength haben.
Okay das ist ein Anfang, ich bin immerhin schon so weit gekommen:
Das der Titel nicht stimmt, liegt daran, das ich nur die Text Resource ID verändert habe. CString.GetLength() sowie CString.GetBuffer(0) habe ich durch AnsiString.Length sowie AnsiString.c_str() ersetzt. Der Fehler mit dem Fragezeichen lässt sich sicher beheben.
Danke an alle die nicht aufgegeben haben und hartnäckig auf mich eingeredet haben. Ich hab das Prinzip nun verstanden.

-
Okay, das Problem scheint doch größer als erwartet. Ich vermute das Labels wie in einer MessageBox zum Beispiel kein Unicode darstellen können. Es könnte natürlich auch sein, dass durch die Benutzung von AnsiString statt CString die Konvertierung falsch lief.
Gibt es andere Konvertierungsfunktionen oder liegt es tatsächlich daran, dass Windows kein Unicode darstellen kann?
-
Hallo
Windows kann sehr wohl Unicode darstellen. Nur die Builder Standard-Komponenten nicht. Du must dir ein externes Package suchen mit Unicode-fähigen Controls. Zum Beispiel die von TNT
Natürlich kannst du dir auch selber passende Unicode-Controls mit der WinAPI bauen.
bis bald
akari
-
Kann ich leider nicht verwenden, da ich ne Trial Version hab. Danke trotzdem.
-
Du kannst afair auch in der Trialversion die Komponenten verwenden. Das einzige, was nicht geht, ist, sie in die IDE zu integrieren (Stichwort RAID).

-
Einfach z.B. die TntLabel.h einbinden und ne neue Instanz benutzen?
-
Okay, ich bumpe den Thread einfach noch mal.
Das Problem besteht weiterhin, ich habe schon allerlei versucht.
1. Versucht den String aus der Resource zu laden, in Unicode umzuwandeln und dann wieder in einen normalen String. Dann wird einfach gar nichts angezeigt. Der String scheint leer.
2. Wenn ich den String in Unicode lasse, kommt solch ein Abfall wie im Screenshot. Unicode Controls hin oder her, ich brauche ja zum Beispiel einen Pfad, da bringt mir die tollste Control die Unicode darstellen kann nichts.
3. Ich habe es mit einer Unicode Resource versucht, aber Borland sagt trotzdem der String aus der Resource wäre normal.
Ich bitte um Hilfe!