Autor Beitrag
HoPPeL
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Fr 18.03.11 15:29 
hi,

ich bins schon wieder :oops: ...

für mein progrämmchen benötige ich zwingend folgende methode einer klasse:
ausblenden C#-Quelltext
1:
void vtkImageImport::SetImportVoidPointer (void * ptr)					


es wird also ein Pointer auf mein Array, welches meine Punkte enthält benötigt
also habe ich mich ein wenig umgeschaut, wie ich das nun in c# gelöst bekomme und folgendes ist bis jetzt dabei rausgekommen

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
int[] buffer = {2550};
            vtkImageImport test = new vtkImageImport();
            unsafe
            {
                fixed (void* pData = buffer); //Fehler Möglicherweise falsche leere Anweisung

                {
                    test.SetImportVoidPointer((IntPtr)pData); //FehlerDer Name "pData" ist im aktuellen Kontext nicht vorhanden.
                }
            }


wo könnte das Problem liegen, gibt es eine bessere/saubere Vorgehensweise ? mfg
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 18.03.11 15:39 
Das Semikolon hinter fixed ;) ...
Denke aber daran, dass der Pointer dann auch nur innerhalb des fixed-Blocks gültig ist.

_________________
>λ=


Zuletzt bearbeitet von Kha am Fr 18.03.11 15:43, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 18.03.11 15:42 
Hallo!

Ohne es gerade teste zu können:


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
vtkImageImport test = new vtkImageImport();

int[] buffer = {255,0};
var pin = GCHandle.Alloc(buffer, GCHandleType.Pinned);

try {
  test.SetImportVoidPointer(pin.AddrOfPinnedObject());             
finally {
  pin.Free();
}


Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
HoPPeL Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Fr 18.03.11 15:48 
ohhh man da guck ich da ne ewigkeit drauf und raffs nicht, dass da ein Semikolon steht ... :/
danke Christian, werds gleich mal so test, wie du es beschrieben hast :)

mfg