Forumkann man mit Visual C++ Quelltexten etwas anfangen?
GoaSkin – Freitag, 28. Januar 2005 01:00 Uhr

Da ich begeistert Simcity 4 spiele und gerne mich auch einmal darin hineinarbeiten möchte, das
Spiel zu modden, habe ich mich auf der Suche nach Opensource-Tools zu diesem Zwecke
gemacht, in der Hoffnung, diese unter Linux verwenden zu können.
Das einzige Opensource-Tool, das ich gefunden habe ist das Programm iLive-Reader, für das es
ein Sourceforge-Projekt gibt.
Allerdings ist das Programm mit Visual C++ geschrieben wurden. Es gibt eine Projektdatei,
jedoch kein Makefile.

Gibt es Möglichkeiten, Visual C++-Quelltexte unter Linux und UNIX-Derivaten zu verwerten oder
ist der Quelltext bestenfalls zur teilweisen Verwertung in eigenen Programmen zu gebrauchen?

3 Antworten
nejo TBH – Freitag, 28. Januar 2005 08:52 Uhr

Hallo erstmal,

also zu deinem Problem: die Dateien wurden unter anderem mit VC++ geschrieben. Das Problem, ist, dass es Windowsspezifische Funktionen nutzt und du es sehr sehr schwer haben wirst, damit was unter LINUX anfangen zu können. Du hast jetzt 3 Möglichkeiten:
a) Du versuchst es zu portieren (sehr umständlich und zu langdauernd, aber nett für die Community)
b) Du schreibst an die Entwickler, ob die das vielleicht für dich übernehmen würde (was aber relativ unwahrscheinlich ist, denn dann hätten sie es von Anfang an anders planen müssen)
c) Du nutzt einfach Windows (nicht schön, aber am einfachsten. Leider)

Ich hab mir den Source nur kurz angesehen. Kann auch sein, dass es mit wenig Aufwand unter Linux laufen könnte, aber dazu musst du erstmal dich in den Code einarbeiten, was eine ganze Weile dauern kann, gerade bei Windows-spezifiziertem Code.
Okay, dann mal viel Glück und viel Spaß beim (eventuellen) modden…

[1] http://sourceforge.net/projects/ilive-reader/

Murphy – Freitag, 28. Januar 2005 10:22 Uhr

Einfach wird eine Portierung nicht werden, da das Projekt, wie ich eben gesehen habe, auf MFC aufsetzt, was unter Linux natürlich nicht verfügbar ist. Außerdem scheint der Sourcecode nicht kommentiert zu sein :-(
Dann spielen auch die fehlenden Makefiles keine Rolle, denn du müßtest das Projekt sowieso mit einem anderen Toolkit neu aufsetzen und die Funktionalität des Readers kopieren; bei 14 MB Quellcode sicher kein Vergnügen für zwischendurch (da sind viele kompilierte Libs dabei, die Frage ist also ob du deren Funktionalität auch unter Linux irgendwo herbekommst). Vielleicht solltest du stattdessen lieber eine Neuimplementation aufsetzen, die mit mit den grundlegenden Funktionen anfängt und evtl. im iLive-Reader vorhandenen Overhead vermeidet. Möglichst mit einer guten Scriptsprache, das könnte die Implementation gegenüber C++ um einiges beschleunigen und der Plattformunabhängigkeit gut tun.

Marc Ströbel – Samstag, 29. Januar 2005 11:14 Uhr

Hi,

wenn das ganze auf MFC aufsetzt wirst du um eine Portierung nicht herumkommen. Wir haben bei unserem Projekt[1] mit wxWidgets[2] gute Erfahrungen gemacht, da die Klassenbibliothek doch recht nah an der MFC ist.

Makefiles können z.B. mit tmake[3] einfach generiert werden.

Alternativ könnte man das ganze noch per Wine zum Laufen bringen.

mfg,

Marc

[1] [1] http://www.jumli.de
[2] [2] http://wxwidgets.org
[3] [3] http://tmake.sourceforge.net

Murphy – Samstag, 29. Januar 2005 20:48 Uhr

mit wxWidgets gute Erfahrungen gemacht, da die Klassenbibliothek doch recht nah an der MFC ist. Nachdem ich mich die letzte Woche in wxWidgets eingearbeitet habe würde ich eher behaupten daß es recht nahe an der Win32-API ist, auf die natürlich auch MFC aufsetzt; besonders das Eventhandling erinnert mich daran, wenn es mit wx auch viel komfortabler geworden ist.
Interessant bei einer Reimplementation mittels Scriptsprache könnte wxPython sein, die Integration von wxWidgets in Python [1]. Scheint bei oberflächlicher Betrachtung komfortabler zu sein als die Qt-Bindings für Python. Hat hier jemand Erfahrungen mit beiden Möglichkeiten gemacht?
Als Dialogeditor kann ich wxGlade [2] empfehlen; XRCed (bei wxPython enthalten) fehlt die Unterstützung für das wxGrid (und evtl. noch andere Widgets?) und ist IMHO auch in der Bedienung etwas fummeliger.

[1] http://www.wxpython.org/
[2] http://wxglade.sourceforge.net/