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.