GMP Ganzzahlaritmetik als WINAPI - DLL



  • hab mal kurz n blick auf den header geworfen... ja sieht so aus als ob du n wrapper brauchst.
    das problem is, dass die dll einige typen als funktionsparameter benutzt die sich in vb nur schlecht abbilden lassen (zeiger, zeiger auf zeiger, variable parameteranzahl, strukturen)

    was willst du mit der bibliothek denn anstelln
    das ding komplett zu wrappen wär imho viel zu aufwändig weil es nicht reicht alles 1:1 abzubilden sondern du müsstest dir auch gedanken machen wie du die funktionalität in vb zugänglich machen kannst



  • Sovok schrieb:

    hab mal kurz n blick auf den header geworfen... ja sieht so aus als ob du n wrapper brauchst.
    das problem is, dass die dll einige typen als funktionsparameter benutzt die sich in vb nur schlecht abbilden lassen (zeiger, zeiger auf zeiger, variable parameteranzahl, strukturen)

    was willst du mit der bibliothek denn anstelln
    das ding komplett zu wrappen wär imho viel zu aufwändig weil es nicht reicht alles 1:1 abzubilden sondern du müsstest dir auch gedanken machen wie du die funktionalität in vb zugänglich machen kannst

    Es geht mir um die grossen ganzen Zahlen, also das mpz-Modul.
    GMP verspricht schnelle und zuverlässige Add, Sub, Mult und Div und Gcd.
    Diese Integer müssen sowie als Strings (bleliebig grosser Länge) in VB
    definiert und verarbeitet werden.
    Ich habe versucht, diese Funktionen in VB nachzuvollziehen und mit Katasuba, Jebelean-Algorithmen gearbeitet. Diese sind aber in VB entweder zu langsam oder sie funktionieren nicht richtig. Letzlich verfüge ich nicht über einen fehlerfreiein Algorithmus zur Division beliebig grosser ganzer Zahlen (Ergebnis mit Quotient und Rest).
    Möchte ich beispielsweise 1000! (1000 Fakultät) berechnen, so ist die Antwortzeit zu gross. Das geht mit C-Programmen viel schneller!

    In VB gibt es ja die Declare-Funktion, mit der man dann hoffentlich auf die APIs/ Wrapper zugreifen kann.



  • ok stell mal ne liste aller funktionen zusammen die du aufrufen musst
    dann versuch ich dir zu sagen wie schwierig des is



  • Sovok schrieb:

    ok stell mal ne liste aller funktionen zusammen die du aufrufen musst
    dann versuch ich dir zu sagen wie schwierig des is

    Diese Liste fällt mir spontan als wichtigste Gruppe von Funktionen
    ein. Wenn ich mir die Parameter ansehe, so sind einige sehr ähnlich.

    mpz_add (mpz_t rop, mpz_t op1, mpz_t op2)
    mpz_sub (mpz_t rop, mpz_t op1, mpz_t op2)
    mpz_mul (mpz_t rop, mpz_t op1, mpz_t op2)
    mpz_fdiv_qr (mpz_t q, mpz_t r, mpz_t n, mpz_t d)
    mpz_gcd (mpz_t rop, mpz_t op1, mpz_t op2)

    Es gäbe natürlich noch eine Reihe weitere praktischer Funktionen.



  • CASiMODO schrieb:

    Sovok schrieb:

    ok stell mal ne liste aller funktionen zusammen die du aufrufen musst
    dann versuch ich dir zu sagen wie schwierig des is

    Diese Liste fällt mir spontan als wichtigste Gruppe von Funktionen
    ein. Wenn ich mir die Parameter ansehe, so sind einige sehr ähnlich.

    mpz_add (mpz_t rop, mpz_t op1, mpz_t op2)
    mpz_sub (mpz_t rop, mpz_t op1, mpz_t op2)
    mpz_mul (mpz_t rop, mpz_t op1, mpz_t op2)
    mpz_fdiv_qr (mpz_t q, mpz_t r, mpz_t n, mpz_t d)
    mpz_gcd (mpz_t rop, mpz_t op1, mpz_t op2)

    Es gäbe natürlich noch eine Reihe weitere praktischer Funktionen.

    Hallo Sovok,

    Ich wollte mal nachfragen.
    Sind das zu viele Funktionen, die ich angegeben habe?

    mfg CASiMODO



  • ne bin nich dazu gekommen

    prinzipiell muss du einfach nur die funktionen aus einer c++ dll als c funktionen exportieren (z.b. mit einer .def datei) dann kannst du sie von
    vb aus aufrufen



  • Liebe C-Gemeinde,

    ich bin leider nicht weiter gekommen.
    Ich kann mir vorstellen, dass auch für C-Kenner nicht ganz einfach ist.
    Bitte kann sich jemand um dieses Problem kümmern?

    mfg CASiMODO

    hier nocheinamal meine Eingangsfrage an das Forum:

    Ich möchte gerne die gmp Programm-Bibliotheken in einer WIN32-Anwendung nutzen.
    Am besten in Form einer .dll die ein Visual Basic 6 lesen kann.

    GMP (u.a LongInteger Arithmetik) ist aber nur als C/C++ Bibliothek verfügbar.
    (gmp.dll, dynamisch/ statisch, gmp.h etc).

    Dazu benötigt man vermutlich einen "Wrapper" und Kenntnisse in C,
    die ich leider nicht habe.

    Wer kann mir helfen, dieses Problem zu lösen ?



  • Poste es mal im "Projekte" Forum... da findet sich sicher jemand, der das für Geld macht.



  • Jochen Kalmbach schrieb:

    Poste es mal im "Projekte" Forum... da findet sich sicher jemand, der das für Geld macht.

    Keine schlechte Idee, schliesslich ist es ja Arbeit.
    Was, glaubst Du, sollte ich abieten?



  • kannstes auch hier probiern: http://www.rentacoder.com/
    da machts vielleicht irgendein inder oder chinese



  • irgendwie scheint was schiefgelaufen zu sein.
    Wenn ich mir so die Beiträge zu diesem Thread anschaue,
    frage ich mich, ob ich irgendetwas falsches gemacht oder geschrieben habe.
    Plötzlich war Funkstille (von Sovok).
    Und jetzt soll ich mich bei der professionellen Stelle erkundigen.....!?
    Das verstehe ich echt nicht.
    Also ich betreibe diese Anwendung nur rein aus Hobby und verfolge keine
    kommerziellen Zwecke. Deshalb kann ich auch kein Geld auftreiben, um irgendwelche Inder oder Chinesen zu bezahlen.
    Ich dachte, Ihr könntetn mir helfen.....
    War wohl nix!
    Tschüss.....



  • dann hast du wohl falsch verstanden wie das forum hier funktioniert
    du bekommst hier gern einen fingerzeig, link oder ein beispiel

    aber die arbeit musst du selber machen!!!

    und wenn dir das ganze so wichtig ist wirst wohl auch 10 euro für ein paar stunden von dem chinesen übrig haben

    die coder auf rentacoder.com sind spottbillig
    mir war ehrlichgesagt der aufwand zu groß und mein stundenlohn is auch
    n bissi höher



  • nix für ungut Sovok,

    was glaubst Du kann mich das kosten?
    Du kennst ja vielleicht den Aufwand, da Du dich damit ein bisserl beschäftigt hast?!
    Komme ich vielleicht mit dir ins geschäft?

    gruss
    casImodo

    Sovok schrieb:

    dann hast du wohl falsch verstanden wie das forum hier funktioniert
    du bekommst hier gern einen fingerzeig, link oder ein beispiel

    aber die arbeit musst du selber machen!!!

    und wenn dir das ganze so wichtig ist wirst wohl auch 10 euro für ein paar stunden von dem chinesen übrig haben

    die coder auf rentacoder.com sind spottbillig
    mir war ehrlichgesagt der aufwand zu groß und mein stundenlohn is auch
    n bissi höher



  • das wär zu teuer... schreib einfach mal ein angebot ins projekte forum

    ich hab schon jemand der mich grad in den semesterferien für 8 stunden programmieren pro tag bezahlt


Anmelden zum Antworten