Dll- string - Ascii- Frage (EILT wirklich sehr!)



  • Hi!

    Ich habe eine c++ DLL mit Sourcecode. Diese DLL ließt ASCII-Dateien ein, die ich per C# oder vb erstelle, analysiert diese und speichert die Ergebnisse wiederum in ASCII-Dateien. Ich greife über c# / vb darauf zu.

    Ich bin kein c++'ler und habe folgende Frage:

    - Wie schwer ist es diese c++-DLL so abzuändern, daß von
    meiner c# Anwendung keine ASCII-Dateien mehr erstellt
    werden müssen, sondern "Strings" an die DLL übergeben
    werden, damit diese durch die DLL analysiert und ein
    Ergebnis geliefert werden kann?

    - Wie kann man dies realisieren?

    - Worauf müßte ich besonders achten?

    Bin über jeden Hinweis dankbar. Falls jemand Internet-Adressen zu diesem Thema hat, wäre ich auch darüber sehr froh. Im Internet habe ich leider nichts spezielles dazu gefunden.

    Danke!



  • Hallo,
    DLLs liegen außerhalb der Welt von Standard-C++. Welchen Compiler verwendest du?



  • Hi!

    Z.Z. noch Visual C ++ 6.0, aber ich bin dabei den Code nach Visual c++.Net 2003 zu portieren.



  • Such mal hier nach "COM" . Gab schon einiges darüber.
    Nicht sehr einfaches Thema.



  • Falls es sich um C++ handelt, in der DLL also Klassen sind, würde ich Dir auch COM empfehlen. Sind es allerdings nur ein paar Funktionen, dann nimm Standard-DLLs.

    Bei COM folgendes:
    Nimm den Anwendungsassistenten (Günstig wäre gleich VC .NET mit der ATL7.0). Erstelle ein ATL-Projekt, hier einen InProc-Server, also eine DLL. Danach auf das erstellte Projekt rechtsklicken und Klasse hinzufügen. Hier reicht ein einfaches ATL-Objekt mit Dualer Schnittstelle. Dem gibst Du dann einen Namen. Durch die Mehrfachvererbung, die bei ATL-Objekten üblich ist, kannst Du einfach Deine C++-Klasse nehmen und das neu erstellte Objekt davon ableiten. Nun mit dem Assistenten noch ein paar Properties und Funktionen als Wrapper für die darunterliegende C++-Klasse geschrieben, welche sich dann auch in die *.idl eintragen und von aussen einfach per C#/VB ansprechbar sind.

    Der Anwendungsassistent nimmt dir im Endeffekt die ganze Portierung nach COM ab.


Anmelden zum Antworten