XML-RPC C



  • ich dachte das soll für windoofs sein? das zeug ist ja im quelltext, d.h. du kannst es dir nach belieben zurechtbasteln, ohne COM und so.
    wenn das zu frickelig erscheint, hier gibts noch mehr: http://www.xmlrpc.com/directory/1568/implementations
    🙂
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################
    ##############################



  • nojaa, es soll eig plattformunabhängig sein, aber es soll AUCH auf windows gehen.
    COM Objekte gehen nur auf windows, der ganze rest geht nur auf Unix.

    Zu deiner liste: Schick, hab mir mal alle C und C++ Implementationen angesehen, leider funktionierten einige Links nicht, und die projekte, die sonst noch erreichbar waren... das übliche. keine anpassung für windows, geht net.

    Würds ja versuchen selber zu machen, hab aber keine ahnung, was da alles in dem build mechanismus drin steckt.



  • piXelshooter schrieb:

    [...]
    make[2]: Entering directory /c/xml/xml2/lib/libutil' ln -s /c/xml/xml2/lib/libutil/../.. srcdir ln: creating symbolic link \srcdir' to `/c/xml/xml2/lib/libutil/../..': No such file or directory
    make[2]: *** [srcdir] Error 1
    make[2]: Leaving directory /c/xml/xml2/lib/libutil' make[1]: *** [libutil/all] Error 2 make[1]: Leaving directory/c/xml/xml2/lib'
    make: *** [lib/all] Error 2

    Die UNIX-makefiles dürften so natürlich nicht funktionieren. Was hast du denn für eine IDE? Code::Blocks kann MS Visual Studio Projekte importieren und diese dann mit dem MinGW übersetzen (auf gut glück natürlich).

    Mit dem MSVC übersetzte Biblioteken helfen dir ansonsten wenig wenn du mit einem anderen Compiler den rest erledigen möchtest.



  • piXelshooter schrieb:

    nojaa, es soll eig plattformunabhängig sein, aber es soll AUCH auf windows gehen.

    dann musst du wohl Java nehmen, da ist SOAP u.ä. schon eingebaut.

    falls es doch ein C-programm werden soll: http://xmlrpc-epi.sourceforge.net/
    das sieht eigentlich ganz überschaubar aus und dürfte leicht anzupassen sein.
    🙂



  • Mit dem MSVC übersetzte Biblioteken helfen dir ansonsten wenig wenn du mit einem anderen Compiler den rest erledigen möchtest.

    Das wäre dann noch schlimmer 😑

    darthdespotism schrieb:

    Die UNIX-makefiles dürften so natürlich nicht funktionieren.

    Gemerkt 😉

    Was hast du denn für eine IDE? Code::Blocks kann MS Visual Studio Projekte importieren und diese dann mit dem MinGW übersetzen (auf gut glück natürlich).

    Gleich ma ausprobieren... Ich arbeite auch sonst mit MinGW, allerdings in eclipse... gut dass ich noch C::B hab^^

    Hm okay, Importieren gibt eher ohne probleme, allerdings dann beim bauen EINIGE fehler (von denen einige offensichtlich syntaxfehler oder deklarationskonflikte sind, die man hätte sehen können, es sind aber nun mal SEHR viele, und einige konstruktionen versteh ich auch nicht, das zeug kann doch schon unter VS nicht laufen).

    Werde versuchen, mich da durch zu schlagen... hab aber eher wenig hoffnung 😕

    daher immer noch nicht richtig zufrieden...

    --edit--

    🙄 😕 schrieb:

    piXelshooter schrieb:

    nojaa, es soll eig plattformunabhängig sein, aber es soll AUCH auf windows gehen.

    dann musst du wohl Java nehmen, da ist SOAP u.ä. schon eingebaut.

    falls es doch ein C-programm werden soll: http://xmlrpc-epi.sourceforge.net/
    das sieht eigentlich ganz überschaubar aus und dürfte leicht anzupassen sein.
    🙂

    Ja, wenn ichs bauen könnte...
    Auch VS spuckt da fehler aus die ich mitunter nicht nachvollziehen kann, wie sie zustande kommen. Den Code korrigieren kann ich nicht, da ich z.T. nicht verstehe, wofür einzelne Fehlerzeilen gut sind.



  • piXelshooter schrieb:

    Ja, wenn ichs bauen könnte...

    wenn du die mitgelieferte xmlrpcepi.dsp mit vs2005 bauen willst, gibt es nur einen fehler (kann <iconv.h> nicht finden). das kann ja nicht soooo schwer sein.
    🙂



  • Ich habe vor einiger Zeit XmlRpc++ als client verwendet. Das hat mit VC++ recht gut funktioniert.

    Im ZIP-Archiv sind auch die Projektdateien zum Bauen drinnen.



  • Opps. Das habe ich ganz vergessen.

    XmlRpc++ benötigt keine weiteren Libraries! Andere Umsetzungen brauchen u.U. noch eine http-Lib oder einen XML-Parser wie expat.

    Was auch wichtig ist (zumindest für mich) ist die Lizenz. DIe Library steht unter der LGPL!



  • 😮 🙄 schrieb:

    piXelshooter schrieb:

    Ja, wenn ichs bauen könnte...

    wenn du die mitgelieferte xmlrpcepi.dsp mit vs2005 bauen willst, gibt es nur einen fehler (kann <iconv.h> nicht finden). das kann ja nicht soooo schwer sein.
    🙂

    Mit VS kann ich die Workspaces gar nicht mehr öffnen, da die Dateien angeblich beschädigt seien (Mehrfach neu heruntergeladen).
    Folgende Schritte habe ich versucht: Herunterladen, entpacken, windows/xmlrpc.dsw öffnen, Den "Konvertieren?" Dialog bestätigt, Fehlermeldung: "Das Projekt kann nicht geladen werden, da eine Projektdatei beschädigt ist" und das für jedes Projekt, sodass ich dann alle Projekte aus der Mappe entfernen lassen kann bzw. wenn ich sie drin lasse nicht benutzen kann.

    joede schrieb:

    Opps. Das habe ich ganz vergessen.

    XmlRpc++ benötigt keine weiteren Libraries! Andere Umsetzungen brauchen u.U. noch eine http-Lib oder einen XML-Parser wie expat.

    Was auch wichtig ist (zumindest für mich) ist die Lizenz. DIe Library steht unter der LGPL!

    Klingt natürlich schick!
    Hm... Hab das ganze jetzt einmal mit VC++05 EE versucht zu bauen:

    Visual C++ schrieb:

    ------ Erstellen gestartet: Projekt: xmlrpc, Konfiguration: Debug Win32 ------
    Kompilieren...
    XmlRpcSocket.cpp
    .\src\XmlRpcSocket.cpp(61) : error C2065: 'EAGAIN': nichtdeklarierter Bezeichner
    .\src\XmlRpcSocket.cpp(61) : error C2065: 'EINTR': nichtdeklarierter Bezeichner
    Browseinformationsdatei wird erstellt...
    Microsoft Browse Information Maintenance-Programm Version 8.00.50727
    Copyright (C) Microsoft Corporation. All rights reserved.
    Das Buildprotokoll wurde unter "file://c:\xml\xmlrpc++0.7\Debug\BuildLog.htm" gespeichert.
    xmlrpc - 2 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    Dann noch mal mit MinGW und dem Beigelegten Makefile:

    MinGW schrieb:

    g++ -g -Wall -Wstrict-prototypes -O2 -I./src -c -o src/XmlRpcClient.o src/XmlR
    pcClient.cpp
    cc1plus.exe: warning: command line option "-Wstrict-prototypes" is valid for Ada
    /C/ObjC but not for C++
    g++ -g -Wall -Wstrict-prototypes -O2 -I./src -c -o src/XmlRpcDispatch.o src/Xm
    lRpcDispatch.cpp
    cc1plus.exe: warning: command line option "-Wstrict-prototypes" is valid for Ada
    /C/ObjC but not for C++
    src/XmlRpcDispatch.cpp: In member function void XmlRpc::XmlRpcDispatch::work(do uble)': src/XmlRpcDispatch.cpp:85: error:fd_set' undeclared (first use this function)
    src/XmlRpcDispatch.cpp:85: error: (Each undeclared identifier is reported only o
    nce for each function it appears in.)
    src/XmlRpcDispatch.cpp:85: error: expected ;' before "inFd" src/XmlRpcDispatch.cpp:86: error:inFd' undeclared (first use this function)
    src/XmlRpcDispatch.cpp:86: error: `FD_ZERO' undeclared (first use this function)

    src/XmlRpcDispatch.cpp:87: error: outFd' undeclared (first use this function) src/XmlRpcDispatch.cpp:88: error:excFd' undeclared (first use this function)
    src/XmlRpcDispatch.cpp:94: error: FD_SET' undeclared (first use this function) src/XmlRpcDispatch.cpp:103: error:select' undeclared (first use this function)

    src/XmlRpcDispatch.cpp:128: error: `FD_ISSET' undeclared (first use this functio
    n)
    mingw32-make: *** [src/XmlRpcDispatch.o] Error 1

    --

    Bin ich ernsthaft so dumm dass ich es nicht schaffe solche Bibliotheken zu bauen?!



  • piXelshooter schrieb:

    Bin ich ernsthaft so dumm dass ich es nicht schaffe solche Bibliotheken zu bauen?!

    nee, nicht dumm. sowas ist allgemein 'ne blöde fummelei und man braucht erfahrung dafür. wieso muss es eigentlich ein C-programm sein? gerade auch im hinblick auf plattformunabhängigkeit gibt es bessere lösungen, die ganz nebenbei XML-RPC schon mitbringen.
    🙂



  • -->
    .\src\XmlRpcSocket.cpp(61) : error C2065: 'EAGAIN': nichtdeklarierter Bezeichner
    .\src\XmlRpcSocket.cpp(61) : error C2065: 'EINTR': nichtdeklarierter Bezeichner
    <--
    wenn das die einzigen fehler sind:

    #define EINTR (WSABASEERR+4) 
    #define EAGAIN (WSABASEERR+1002)
    

    🙂



  • fummel-freak schrieb:

    wieso muss es eigentlich ein C-programm sein? gerade auch im hinblick auf plattformunabhängigkeit gibt es bessere lösungen, die ganz nebenbei XML-RPC schon mitbringen.
    🙂

    Naja, weil ich nun mal die meiste Zeit in C++ programmiere, ich mich dort auch die meiste zeit nicht gerade in plattformen eingeschränkt sehe, da ich plattformübergreifende bibliotheken benutze, und ich mir dachte: Es gibt doch nicht gerade wenige Projekte, die in C/C++ umgesetzt werden, also gibt es doch auch sicher anwendbare Lösungen für dieses problem -- gibt es ja auch, nur recht halbherzig für windows wie mir scheint...

    Welches wären denn z.B. solche Lösungen? Java ist denk ich ma kein Problem, ne?^^

    socket-freak schrieb:

    -->
    .\src\XmlRpcSocket.cpp(61) : error C2065: 'EAGAIN': nichtdeklarierter Bezeichner
    .\src\XmlRpcSocket.cpp(61) : error C2065: 'EINTR': nichtdeklarierter Bezeichner
    <--
    wenn das die einzigen fehler sind:

    #define EINTR (WSABASEERR+4) 
    #define EAGAIN (WSABASEERR+1002)
    

    🙂

    Dankööö, damit konnt ichs zumindest schon mal mit VS erstellen... *freu* *dank*
    schritt 2 wär dann versuchen, es zu benutzen, und schritt 3 das ganze dann noch mal für MinGW kompilieren... will ja nicht ewig an disem ding hängen...

    für die fehlermeldungen mit MinGW weiß keiner ne lösung oder?

    werd mich aber mal in den nächsten tagen damit beschäftigen, hab jetzt einen hoffnungsschimmer 😃



  • piXelshooter schrieb:

    Naja, weil ich nun mal die meiste Zeit in C++ programmiere, ich mich dort auch die meiste zeit nicht gerade in plattformen eingeschränkt sehe, da ich plattformübergreifende bibliotheken benutze...

    plattformunabhängigkeit mit C++ programmen zu erreichen ist sehr aufwendig und im grunde genommen nur eine illusion. noch nicht mal einfache dinge wie 'cout' spielen da richtig mit (beim einen gehts so, beim anderen brauchste 'flush' oder 'endl', damit der text sofort erscheint). vieles ist einfach undefiniert oder unspezifiziert und lässt compiler- und library-herstellern zu viel spielraum.

    piXelshooter schrieb:

    Welches wären denn z.B. solche Lösungen? Java ist denk ich ma kein Problem, ne?^^

    ja daran dachte ich (wollt's nur nicht so direkt erwähnen, weil sonst die ganzen flame warriors gleich wieder auf der matte stehen). eventuell wäre python noch was, da weiss ich aber nicht, ob XML-RCP integriert ist.

    socket-freak schrieb:

    für die fehlermeldungen mit MinGW weiß keiner ne lösung oder?

    wenn's auch auf 'ner unix-box laufen soll, dann mach's nicht mit mingw, sondern nimm einen richtigen GCC unter unix (BSD in eine vmware-maschine rein und du hast 'ne prima unix-testumgebung). wer weiss, beim GCC unter unix geht der build vielleicht ohne fehler durch.
    🙂



  • Vista! Versuch doch mal deine Anti-C++-Einstellung hier mal langsam im Forum einzustellen. Versuch mal lieber C++-Hilfe zu geben! Eine andere Sprache empfehlen kann jeder Idiot, anstatt wirklich DAS gestellte Problem zu lösen! Nur weil du kein C++ kannst, müssen die anderen nicht darunter leiden, nicht weiter zu kommen.



  • Artchi schrieb:

    Versuch mal lieber C++-Hilfe zu geben!
    [...]
    Nur weil du kein C++ kannst...

    wie passt das zusammen?

    Artchi schrieb:

    müssen die anderen nicht darunter leiden, nicht weiter zu kommen.

    entschuldige bitte, aber vielleicht ist dir entgangen, daß ich durchaus versucht habe, pixelshooter in seiner not zu helfen (die #defines und so).
    🙂



  • piXelshooter schrieb:

    Welches wären denn z.B. solche Lösungen? Java ist denk ich ma kein Problem, ne?^^

    ja daran dachte ich (wollt's nur nicht so direkt erwähnen, weil sonst die ganzen flame warriors gleich wieder auf der matte stehen).

    Naja, wenn es stimmt...
    Hab mich jetzt nur leider schon ziehmlich an C++ und C++-Bibliotheken gewöhnt...

    socket-freak schrieb:

    für die fehlermeldungen mit MinGW weiß keiner ne lösung oder?

    wenn's auch auf 'ner unix-box laufen soll, dann mach's nicht mit mingw, sondern nimm einen richtigen GCC unter unix (BSD in eine vmware-maschine rein und du hast 'ne prima unix-testumgebung). wer weiss, beim GCC unter unix geht der build vielleicht ohne fehler durch.
    :)[/quote]
    Müsst ich dann mal bei gelegenheit ausprobieren, gehe ich aber stark von aus. Das Problem ist, ich arbeite eigentlich immer mit GCC bzw. der MinGW portierung für windows. Und so viel ich weiß (was aber noch auf nen versuch ankommt...) kann ich dann nix mit VS-gebauten libs schaffen.



  • pixelshooter! Ist das makefile überhaupt für Windows ausgelegt? Wenn ich da rein schaue, kann ich keine Defines für Windows entdecken.

    Laut XmlRpc++-Infos ist für Windows (lediglich) die MSVC-Projektdatei gedacht. Das würde erklären, warum es mit mingw nicht funktioniert. Die haben einfach das makefile nicht für Windows angepasst? (gehe ich jetzt mal von aus, kann ich mich auch täuschen)

    Du könntest höchstens nochmal versuchen, die Defines wie -D_WINDOWS mit in das makefile zu schreiben. Schau mal dazu einfach in die XmlRpc.vcproj.



  • piXelshooter schrieb:

    Naja, wenn es stimmt...

    ja, stimmt. einen power-troll hatten wir schon^^

    piXelshooter schrieb:

    Hab mich jetzt nur leider schon ziehmlich an C++ und C++-Bibliotheken gewöhnt...

    na, dann wird's mal zeit noch was anderes kennenzulernen. versteh' mich bitte nicht falsch, ich will dir C++ nicht madig machen, aber wenn man nur eine programmiersprache/umgebung/plattform etc. kennt, dann kann man vielleicht nicht so ganz optimal entscheiden, welches system für das konkrete problem am geeignetsten wäre. ich möchte mir nicht anmaßen der absolute checker zu sein, aber imho scheint deine vorgehensweise (auf-jeden-fall-mit-C++, platform-independent, XML-RPC) ein ziemlich dorniger weg zu sein.
    🙂



  • könig drosselbart schrieb:

    piXelshooter schrieb:

    Naja, wenn es stimmt...

    ja, stimmt. einen power-troll hatten wir schon^^

    piXelshooter schrieb:

    Hab mich jetzt nur leider schon ziehmlich an C++ und C++-Bibliotheken gewöhnt...

    na, dann wird's mal zeit noch was anderes kennenzulernen. versteh' mich bitte nicht falsch, ich will dir C++ nicht madig machen, aber wenn man nur eine programmiersprache/umgebung/plattform etc. kennt, dann kann man vielleicht nicht so ganz optimal entscheiden, welches system für das konkrete problem am geeignetsten wäre. ich möchte mir nicht anmaßen der absolute checker zu sein, aber imho scheint deine vorgehensweise (auf-jeden-fall-mit-C++, platform-independent, XML-RPC) ein ziemlich dorniger weg zu sein.
    🙂

    werd mich ma umschauen... Schritt 2 ist jetzt sowieso erst ma die DB ans rennen zu kriegen...

    Artchi schrieb:

    pixelshooter! Ist das makefile überhaupt für Windows ausgelegt? Wenn ich da rein schaue, kann ich keine Defines für Windows entdecken.

    Laut XmlRpc++-Infos ist für Windows (lediglich) die MSVC-Projektdatei gedacht. Das würde erklären, warum es mit mingw nicht funktioniert. Die haben einfach das makefile nicht für Windows angepasst? (gehe ich jetzt mal von aus, kann ich mich auch täuschen)

    gehe ich nicht von aus, dass das makefile für C++ geeignet ist...

    Du könntest höchstens nochmal versuchen, die Defines wie -D_WINDOWS mit in das makefile zu schreiben. Schau mal dazu einfach in die XmlRpc.vcproj.[/quote]
    hm, kenn mich mit sowas nicht wirklich aus, von daher dürfte mir das etwas schwer fallen, aber: ICH SCHAFF DAS ;)^^



  • piXelshooter schrieb:

    ICH SCHAFF DAS ;)^^

    das ist die richtige einstellung --> niemals aufgeben 👍
    🙂


Anmelden zum Antworten