Suchergebnisse

Suchergebnisse 1-6 von insgesamt 6.

  • Benutzer-Avatarbild

    string ist kein primitiver Datentyp, sondern ein Referenztyp, den kann man nicht pinnen. Von dem Nuget Paket hab ich noch nie gehört, ist unter diesem Namen auch nicht einfach zu finden und sollte eigt. auch nicht nötig sein. Die Frage ist, wie sieht der primitive Datentyp in der Originalsprache aus? Ich vermute mal es ist C, also wie sieht die struct in C aus?

  • Benutzer-Avatarbild

    Ohh ups mein Fehler, du willst exportieren. Keine Ahnung ob man dabei die Bibliothek braucht, scheint aber keine zusätzliche Abhängigkeiten zu erzeugen, also dürfte irrelevant sein. C#-Quellcode (1 Zeile) sollte auch funktionieren Jenachdem ob das Hauptprogramm zugriff auf die Variable RegistryPath über das MemoryLayout braucht oder nicht kannst du entweder eine Art verweis erstellen, die nur auf den string, oder gar das Komplette Analysis Objekt verweis, anschließend würde es dir freistehen bel…

  • Benutzer-Avatarbild

    Also wie gesagt um es zu pinnen brauchst du dann schon ne feste größe, dann sollte es(wenn ich nicht falsch liege) funktionieren. Das MarshalAs geht leider eben nur in umgekehrter Richtung. Da er nicht anfängt rekursiv die objekte zu pinnen. Ich würde sowieso zum Lösungsansatz 1 tendieren. Oder brauchst du wirklich Zugriff auf den RegistryPath von der C++ Seite und wenn ja, wie sieht dieser Zugriff aus, oder kannst du die Art des Zugriffs selbst festlegen?

  • Benutzer-Avatarbild

    Ja das kannst du natürlich machen, ergibt nur wenig Sinn, da dieses Objekt im Unmanaged Memory auf ein Objekt im Managed Memory verweist, damit kann C++ nichts anfangen und durch die Runtime könnte das Objekt sogar noch verschoben worden sein, sodass das Objekt gar nicht mehr gültig ist. Deshalb würde ich wie bereits gesagt mein oben genanntes herangehen über die Referenz empfehlen. Da weißt du die größe, du kannst beliebig auf C# seite programmieren und hast auch nicht so das Problem mit dem Me…

  • Benutzer-Avatarbild

    @RodFromGermany: nur dass das hier genau umgekehrt ist... @seh: genau deshalb gibt es keinen Sinn der C++ DLL etwas zu geben, mit der sie erst nichts anfangen kann^^

  • Benutzer-Avatarbild

    klar kannst du das, davon hab ich ja auch die ganze Zeit geredet, anders wäre der Ansatz gar nicht möglich^^. Würde mir dafür einfach ein Singleton anlegen, dass die nötigen Daten hält und auch die Verweisnummern, dann kannst du die Objekte einfach in ner List halten und die Referenznummern sind einfach nur der Index in dieser List, die auch wieder freigegeben werden können. Man kann dann immer einen freien Slot suchen, oder mittels RemoveAt tatsächlich komplett aus der Liste löschen, das letzte…