Datentypen zu Standard VisualStudio-Datentypen
-
Hallo zusammen, vielleicht kann mir hier jemand helfen.
ich hab folgendes problem:
ich habe hier in einer header-datei verschiedene konstruktoren, welche so aussehen:RTI_API int RTI_getClientNumberS(const char *memory, const char *clientName); RTI_API int RTI_countClients(const char *memory); RTI_API int RTI_countInputsN(const char *memory, int clientNr); RTI_API int RTI_countOutputsN(const char *memory, int clientNr); usw.die dazugehörigen definitionen von RTI_API hab ich auch drin
dies sind ja aber ganz spezielle Datentypen, ich soll nun diese so umwandeln und dann in einer .dll verfügbar machen, dass man sie in jeder programmiersprache nutzen kann.
d.h. eben in universelle Datentypen.
ich habe nun ein neues Projekt erzeugt und hab dann in die neue header folgendes geschrieben:#pragma once using namespace System; namespace test { public ref class Class1 { private: char *memory; //soll ein String mit dem speicherinhalt sein public: Class1(); //bei jedem Namen das RTI_ weggelassen //möglichst nacher durch überladen noch das SS, NN, usw. weglasen System::Int32 ^getClientNumberS(System::String ^clientName); System::Int32 ^countClients(memory); System::Int32 ^countInputsN(memory, System::Int32 ^clientNr); System::Int32 ^countOutputsN(memory, System::Int32 ^clientNr); System::Int32 ^countClientParameterN(memory, System::Int32 ^clientNr); System::String ^getClientParameterNameNN(memory, System::Int32 ^clientNr, System::Int32 ^parameterNr); usw.nun müsste ich ja die methoden/funktionen irgendwo aufrufen, das hab ich dann in der .cpp gemacht:
// Dies ist die Haupt-DLL. #include "stdafx.h" #include "test.h" #include <rti_sdk.h> System::Int32 ^test::Class1::getClientNumberS(System::String ^clientName) { return RTI_getClientNumberS(memory,"bla"); //irgendwie in das richtige überführen -> const *char } test::Class1::Class1() { memory = RTI_getSharedMemory(); }dort bei "return RTI_getClientNumberS(memory,"bla");" weiß ich eben nicht wie ich das schreiben kann das er den korrekten datantyp sich holt usw.
kann mir jemand helfen?
ist das grobe konstrukt erstmal richtig?er gibt mir auch immernoch folgenden fehler:
error C2061: Syntaxfehler: Bezeichner 'memory'
also muss er ja irgendwie mit dem memory nicht klarkommen.Danke erstmal!
gruß
-
dies sind ja aber ganz spezielle Datentypen, ich soll nun diese so umwandeln und dann in einer .dll verfügbar machen, dass man sie in jeder programmiersprache nutzen kann.
Jeder? Da hst Du aber viel arbeit vor Dir..
Und warum hast Du denn gerade C++/CLI gewählt um die DLL (Assembly) zu erstellen/wrappen?
(Kann ja durchaus Sinn machen, ich bin mir aber nicht sicher ob diese Entscheidung bewusst getroffen wurde.)Simon
-
naja weil ich diese hier zur verfügung habe.
zur not würde auch C# gehen aber mehr darf ich net benutzen.und jede prog-sprache ist vlt. übertrieben, sagen wir mal VB.Net und C#.
C und C++ funzen ja schon so.
-
also ich will sozusagen diese C/C++ anbindung in einer anderen klassen wrappen, sodass ich diese mit C# oder VB benutze kann.
gruß