Hallo Boris,
> Hallo,
>
[...]
>
> Warum kein C#? Weil ich mich damit erst beschäftigen müßte. Mir
> persönlich gefällt C++ eben besser. Da weiß ich im Normalfall wenigstens
> was ich tue
Und genau dort unterliegst Du einer Täuschung! C++/CLI ist etwas
vollkommen anderes als reines C++. Und mit der Mischung von "altem"
C/C++ wird das ganze noch viel verwirrender. Der Lernaufwand ist
keineswegs geringer, als mit C#, im Gegenteil. Gerade .NET-Einsteiger
verwenden gerne C++/CLI weil man's ja kennt. Die Ernüchterung kommt dann
ganz schnell beim Zusammenspiel mit dem Framework. Sieht scheiße aus und
viele Vorteile von C# (IntelliSense, keine Header usw.) verschekt man
einfach.
> ;-) Außerdem besteht ein anderes Modul des Programms aus Funktionen die
> das Windows API verwenden und nur mit /clr compiliert werden können.
>
> Aber mal so nebenbei: Gibt es für das oben beschriebene Problem den in
> C# eine Lösung ohne einen Offset mit zu übergeben? Einen Offset mit zu
> übergeben bedeutet ja auch, ihn bei jedem Zugriff zum Arraystart hinzu
> zu addieren, was ja eigentlich nunnötig ist, wenn die Referenz gleich
> auf die richte stelle zeigt.
Nein, in reinem .NET gibt es dafür keine Möglichkeit, da Du nur eine
Referenz auf das GESAMTE Array-Objekt hast. Teilmengen dieser Objekte
gibt es nicht. Da aber viele Array-Funktionen auch dieses Offset
benutzen, hält sich die Addiererei in Grenzen. Falls man doch mal in
Verlegenheit kommt, für native C/C++-Libs Array-Pointer zu benötigen,
dann bleibt nur die Sache mit den unsafe-Pointern.
Gruß,