Strings oder ASCIIs? Brauche Rat!



  • Hi!

    Aus einem externen Programm lasse ich mir Daten an meine DLL schicken. Da ich keine ASCII-Dateien verwenden wollte, habe ich es über Strings gemacht. Es sind ca. 10 strings (jeder String beinhaltet ca. 10.000 Zeichen). Diese habe ich in der "Parameterliste" meiner DLL. Diese Strings extrahiere ich dann und ziehe mir die für meine Berechnungen notwendigen Daten heraus. Bis hierhin ist/war alles auch ok.

    Nun stehe ich vor einem neuen/anderen Problem.

    Während der Entwicklung hat sich ergeben, das aufgrund eines bestimmten übergebenen Strings weitere 5 bis 150 ASCII-Dateien erstellt werden müssen, die mein Programm auslesen muß (diese sollen jeweils auch ca. 10.000 Zeichen beinhalten). Und das wollte ich gerade verhindern! Ich wollte keine "offensichtlichen" und sichtbaren Dateien hin und herschicken.

    Nun ist es natürlich Blödsinn, wenn man diese 5 bis 150 ASCII-Dateien (á 10.000 Zeichen oder mehr) auch als Strings rüberschickt, da die Anzahl der Strings dann auch variieren könnte.

    1. Wie würdet ihr dieses Problem lösen?

    2. Wenn ihr sagt, es gibt keine andere Lösung, als daß Du die ASCII-Dateien erstellst und einließt, wie sieht es dann aus mit verschlüsseln und entschlüsseln dieser Dateien, damit sie nicht "einsehbar" für Dritte sind.

    Ich verwende Visual C++ ohne MFC!

    Vielen Dank im voraus!
    Gruß
    Sigi



  • Naja, grundsätzlich ist es Blödsinn über Dateien mit DLLs (passt besser nach MFC oder WinAPI weil C++ kennt keine DLLs) zu kommunizieren. Ich würde zunächst anfangen und mich fragen ob diese vielen Daten überhaupt sein müssen. Such doch erstmal Stellen an denen du den Datenaufwand reduzieren kannst. Gib doch mal ein Beispiel was das denn für Daten sind.



  • Abgesehen von MaSTah's Antwort: wieso übergibst nicht den Zeiger auf die Daten an Deine DLL? Wo soll da das Problem mit der Sicherheit sein?

    Oder schreibt das externe Programm die Daten in eine Datei, die Du dann mit Deinem Programm liest und an die DLL übergibst!????

    Also ich versteh Deine Fragestellung gar net...



  • Hi!

    @MaSTaH

    ...würde zunächst anfangen und mich fragen ob diese vielen Daten
    überhaupt sein müssen. Such doch erstmal Stellen an denen du den
    Datenaufwand reduzieren kannst. Gib doch mal ein Beispiel was das denn für
    Daten sind.

    Es geht nicht um Dateien, sondern um (große) Strings. Nein, der Datenaufwand kann nicht reduziert werden.

    @JFK

    wieso übergibst nicht den Zeiger auf die Daten an Deine DLL?

    Wie meinst Du das? Verstehe ich nicht ganz! Bin "Anfänger". Kannst Du mir das näher erläutern?

    Oder schreibt das externe Programm die Daten in eine Datei,
    die Du dann mit Deinem Programm liest und an die DLL übergibst!????

    Nein. Gerade das möchte ich nicht.

    Also ich versteh Deine Fragestellung gar net...

    Also nochmal. Bis jetzt ging es darum 10 Strings (in einer jew. Größe von 10.000 Zeichen) aus VB an die DLL zu übergeben.
    Dies lief auch ganz gut.

    In der Zwischenzeit hat sich jedoch herausgestellt, daß weitere 5 - 150 Strings (auch in einer Größe von >= 10.000 Zeichen) ebenfalls an die DLL übergeben werden muß.

    Meine Rechnung geht nun nicht mehr auf. Ich habe char* benutzt und habe die 10 Strings so in der c++-DLL empfangen. Aber bei 10 + 150 (großen) Strings ist das eine ganz schöne Tipp-Arbeit.

    Deshalb meine Frage. Wie übergibt man nun die variable Anzahl von weiteren Strings (5-150 Strings) an die DLL. Es muß doch eine effizientere Lösung geben.

    Ich hatte da mal was von vector<string> gehört, weiß aber nicht

    a) wie man das in c++ (bzgl. einer DLL) realisiert.

    b) wie aus VB der String dann übergeben werden muß (=> wohl als Array)

    c) (vor allem) wie effizient dieses Verfahren dann ist

    oder /und

    d) ob es eine bessere/effizientere Lösung gibt.

    Gruß
    Sigi



  • char **
    

    mfg


Anmelden zum Antworten