Hilfe bei Projekt benötigt



  • Hallo,

    ich habe keine Ahnung von C/C++, denn ich bin Java-Entwickler und kenne mich nur hier richtig aus. Aber für ein aktuelles Projekt muss ich ein C++-Projekt kompilieren, dass ich dann mit Java aufrufe und das Ergebnis parse.

    Nun habe ich mir Dev-C++ heruntergeladen und wollte das Projekt kompilieren, doch das scheiterte. Und auch mit Eclipse habe ich es nicht hin bekommen.

    Und daher wollte ich hier mal ganz höflich fragen, ob von Euch C++-Profis jemand einen Moment Zeit hätte mir das Ganze zu kompilieren? Das wäre echt super toll! 🙂

    Hier der Link zum Download: http://www.file-upload.net/download-2590994/AudioCD.zip.html

    Gruß,
    java99


  • Mod

    Das könnte wahrscheinlich schon jemand tun, aber du musst schon etwas genauer sagen, für welche Plattform compiliert werden soll. Würde es dir zum Beispiel nutzen, wenn ich dir eine Datei im ELF für x86-64 schicke? Und statisch gelinkt oder dynamisch?

    edit: Ok, nachdem ich mir das mal angeschaut habe, wirst du als Zielplattform wohl Windows haben. Bleibt aber immer noch die Frage nach Prozessorarchitektur und Linkage.



  • Das ist aber wirklich super, wenn Du das machen könntest!! Danke! 🙂
    Zielplattform soll Windows sein, x86 mit 32-Bit-Architektur.

    Statisch gelinkt heißt ja sozusagen, dass alles in das Programm gepackt wird, was es benötigt und damit steigt die Dateigröße. Dynamisch heißt dann, dass die Datei kleiner ist aber nur auf Systemen funktioniert wo die Entsprechende "Konfiguration" vorhanden ist. Was meinst Du? Statisch ist doch schon besser.

    Könntest Du noch eine Sache in den Quelltext einbauen: bis jetzt ist ja der Laufwerksbuchstabe auf "MY_CDROM_DRIVE" fest definiert. Könnte man dies nicht so regeln, dass es als Argument auf der Konsole mitgegeben werden kann? Bis ich das mit Google rausgefunden habe ...

    Das ist echt wirklich nett 🙂

    Noch eine Frage: könnte man das auch theoretisch für Linux kompilieren? ... ich weiß ... ich bin ein Java-Mensch: wir wollen alles immer gerne plattformunabhängig haben 😃

    Gruß,
    java99



  • Ähem, Java ist nicht plattformunabhängig sondern plattformübergreifend. Das ist ein Unterschied. 😉


  • Mod

    Ich kann dir nur für Linux compilieren, weil ich keinen Cross-Compiler installiert habe. Du musst jemanden mit Windows fragen.

    Theoretisch kann man C++ Programme für alle Plattformen compilieren, aber nicht dieses, da es spezielle Betriebssystemfunktionen benutzt, welche es nur in Windows gibt.



  • Ich habe mal gegoogelt und das mit den Parametern in C++ zu lösen. Das ist dabei herausgekommen:

    int main()
    {
        CAudioCD AudioCD;
        if ( ! AudioCD.Open( argv[1] ) )
        {
            printf( "Cannot open cd-drive!\n" );
            return 0;
        }
    ...
    }
    

    Ich habe es zwar nicht gestestet (da ich ja die Dateien nicht kompilieren kann) müsste aber funktionieren - zumindest hat es das im Demo-Projekt.

    Aber vielleicht interessiert sich jemand dafür, was ich überhaupt machen will: ich möchte in Java ein Applet schreiben (das man in die Website integrieren kann), dass die Informationen über eine CD bei MusicBrainz.org besorgt. Den "Algorithmus" zur Bestimmung der CD-Id habe ich bereits fertig gestellt (http://musicbrainz.org/doc/DiscIDCalculation). Nun muss ich jedoch an die TOC (Table of Contents) der CD ran. Und das kann Java leider noch nicht (ist ein Bug seit 1999). Daher habe ich mir gedacht, dass ich mir so ein kleines "Skript"/"Progrämmchen" besorge, dass gegen Angabe des Laufwerksbuchstaben die TOC der Audio-CD angibt. Das werde ich dann mit Java aufrufen und die Ausgabe parsen. Der Rest ist dann einfach ...

    Nun ja, zunächst habe ich mir mal cdrecord angeschaut, doch das hat diese cygwin1.dll dabei, die 1,7MB wiegt und das ist für ein Applet vielzuviel ... Und wenn ich dann noch die ausführbaren Dateien für Linux & Mac rein packe, dann ist das Applet monstermäßig ...

    Aber vielleicht habt Ihr ja eine viel, viel einfachere Idee, wie ich an die TOC einer CD herankomme ...

    Hätte denn vielleicht ein Windows-Nutzer lust mir das Programm zu kompilieren?

    Gruß,
    java99



  • 😮 @

    #include "D:\SimpleAudioCD_src\AudioCD\CAudioCD.h"
    

    Wie dem auch sei, das mit dem Parameter ließe sich so lösen:

    int main(int argc, char *argv[])
    {
        CAudioCD AudioCD;
        if ( ! AudioCD.Open( argc > 1 ? argv[1][0] : MY_CDROM_DRIVE ) )
        {
            printf( "Cannot open cd-drive!\n" );
            return 0;
        }
    
        // ...
    

    Ansonsten...darf ein Applet überhaupt native Programme ausführen? Ich dachte, die Sandbox wäre dazu da, genau solche Schweinereien zu verbieten. Wenn sowas geht, muss ich Java aber ganz schnell überall runterschmeißen. 😞



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Projekte verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hi,

    war nicht ganz einfach da irgendwie eine Deklaration aus winioctl.h fehlte, aber habe es dann hinbekommen. Hoffe die exe bringt dich weiter, bei mir erscheint beim Starten "Cannot open cd-drive!".

    http://www.file-upload.net/download-2591461/audiocd.exe.html

    G hibbes



  • Dass der Code nicht kompiliert wundert mich nicht, der hatte so einige Fehler.

    Aber gut:
    http://94.23.22.190/etc/audiocd.exe

    Nimmt als ersten Parameter den Laufwerksbuchstaben des CD-Laufwerks.
    Bei mir mit Wine gesteht das Programm meiner gerade eingelegten 3.7 GB-DVD aber nur 2.5 GB zu. Bei >4 GB wär's sowieso übergelaufen.

    Edit: vorigen Post übersehen.



  • Sry hatte die Änderung mit den Argumenten nicht drin, hier nochmal die neue exe.

    http://www.file-upload.net/download-2591496/audiocd.exe.html

    edit:
    meine Ausgabe bei einer normalen DVD bei der Angabe des Arguments e: war

    >audiocd.exe e:
    Track-Count: 1
    Track 1: 255:57;  -1585818448 bytes of size
    


  • Das ist ja echt super! Es funktioniert gut (http://s2.imgimg.de/uploads/testfa0af19fjpg.jpg).

    Mein größtes Dankeschön an hibbes und Athar!! Mir geht es zunächst darum nur die TOC von Musik-CD's einzulesen. Denn davon haben wir hier über 6.000 Stück stehen ... und wenn man das einzeln alles eingibt ist man ja für die Nächste Zeit noch beschäftigt ...

    Nun habe ich aber noch eine Frage, weil ich es irgendwie selbst schaffen möchte das Programm zu kompilieren. Mir stehen Dev-C++ und Eclipse mit entsprechender Software zur Verfügung. Nun wie macht Ihr das? Ich habe alle Dateien in das Projekt gefügt und dann auf Kompilieren geklickt. Und dann gab es eine Menge Fehler ...

    Da Ihr es ja kompiliert habt, müsstet Ihr auch die Fehler korrigiert haben, oder? Hättet Ihr Interesse mir den Source-Code vielleicht noch zukommen zu lassen?

    Gruß und großes Dankeschön,
    java99

    P.S.: Und wenn jemand ein Problem mit Java hat dann könnt Ihr mich gerne fragen (sofern Ihr das nicht selber lösen könnt), denn das ist mein Gebiet 🙂


  • Mod

    java99 schrieb:

    Das ist ja echt super! Es funktioniert gut (http://s2.imgimg.de/uploads/testfa0af19fjpg.jpg).

    Glückwunsch!

    P.S.: Und wenn jemand ein Problem mit Java hat dann könnt Ihr mich gerne fragen (sofern Ihr das nicht selber lösen könnt), denn das ist mein Gebiet 🙂

    Du kannst ja das Java-Subforum bereichern.



  • Hier ist der geänderte Code:

    http://94.23.22.190/etc/audiocd.zip

    In CAudioCD.cpp und main.cpp inkludiere ich jeweils eine andere .cpp-Datei.
    Solltest du besser wieder durch die Header ersetzen, wenn du noch weiter daran herumbasteln möchtest.



  • Und hier auch nochmal meine Version, ich habe nur eine Includeanweisung einer Windowsheaderdatei hinzugefügt und ein Compilerparameter hinzugefügt. Das Makefile ist mit dabei, somit brauchst du nur eine MinGW Installation egal ob single oder mit einer IDE zusammen. Ich nutze derzeit keine IDE sondern nur emacs, aber das ist nur was für Liebhaber 😃

    http://www.file-upload.net/download-2593732/AudioCD.zip.html

    G hibbes


Anmelden zum Antworten