Performance - Programmierstil (Anfängerfrage)



  • Hallo!

    Ich habe eine Frage:

    In einer Dll (mit c++ geschrieben) ist folgendes implementiert:

    extern "c" __declspec(dllexport) long test (char* text1, char* text2, char* text3, char* text4, char* text5, char* text6, char* text7, char* text8);

    Die von einem anderen Programm an diese DLL übergebenen Inhalte bauen sich folgendermaßen auf:

    text1 besteht aus 2000 Zeichen
    text2 besteht aus 5000 Zeichen
    ...
    text8 besteht aus 10000 Zeichen.

    Diese Inhalte müssen von der DLL einzeln abgearbeitet werden, so gesehen Wort für Wort.

    Mit was für Problemen muß man rechnen. Und wie ist solch ein Programmierstil zu beurteilen? Eure Meinung dazu würde mich brennend interessieren.

    P.S. Es ist mir klar, daß es vielleicht einfacher zu handeln wäre, wenn das Externe Programm ASCII-Dateien erstellt, die die DLL dann einließt. Aber letztgenannter Lösungsweg soll auf keinen Fall beschritten werden.



  • Mich stört an Deiner Lösung, das sie unflexibel ist, weil immer 8 Zeiger übergeben werden müssen, auch wenn vielleicht nur 4 notwendig wären.

    Ich würde das aus diesem Grund so lösen, in dem ich ein Array aus Zeigern bilde, die jeweils auf eine Textdatei/Textabschnitt verweisen.

    Deiner Funktion übergibt man dann einfach die Adresse auf den ersten Eintrag im Array (also im Prinzip einen Pointer auf einen Pointer) und einen zweiten Parameter, der angibt, wie groß das Array ist.

    Wenn das jetzt ein C++ Guru liest, dann wird er mich öffentlich steinigen, vierteilen und rädern. 🙄
    Man könnte natürlich auch ein Objekt erzeugen, welches eine beliebige Anzahl Zeiger aufnimmt und verwaltet und dieses Objekt dann an Deine DLL-Funktion übergeben....



  • wie kommst du darauf, dass es vorkommen kann, dass nur 4 pointer benoetigt werden? vielleicht fordert die problemstellung immer diese 8 pointer. (so wie ein add immer 2 braucht und nicht manchmal nur 1).

    ich weiss nicht, was das eigentliche motiv der frage war. nimmst du an, dass diese zigtausend zeichen bei der uebergabe irgendwohin kopiert werden? das ist meines wissens nicht so.


Anmelden zum Antworten