BYTE* zu array

24/09/2007 - 17:35 von Alexander Mueller | Report spam
Hallo

ich bekomme von einem COM/Win32-Objekt (DirectX IMediaBuffer)
einen Zeiger auf ein Byte-Array zurück, deklariert als:

BYTE * bufferdata;

Diesen Puffer will ich in einem "mixed"-Project (VS2005, ist mit
/clr compiliert enthàlt aber auch ungemanged'te Module) in einen
Stream vom managed Type System::IO::Stream schreiben, als Datenstrom
eines HttpWebRequests.

Der will aber ein Byte-Array vom gemanagedten Typ:

array<Byte>^ bytes;

haben.
Kann man das API-BYTE irgendwie konvertieren/pinnen oder soll's man sein
lassen, weil schon im Ansatz unsauber und statt des .NET-HttpWebRequest
lieber Win32-WinHttp o.à. nehmen?


MfG,
Alex
 

Lesen sie die antworten

#1 Jochen Kalmbach [MVP]
24/09/2007 - 18:02 | Warnen spam
Hallo Alexander!

ich bekomme von einem COM/Win32-Objekt (DirectX IMediaBuffer)
einen Zeiger auf ein Byte-Array zurück, deklariert als:

BYTE * bufferdata;

Diesen Puffer will ich in einem "mixed"-Project (VS2005, ist mit
/clr compiliert enthàlt aber auch ungemanged'te Module) in einen
Stream vom managed Type System::IO::Stream schreiben, als Datenstrom
eines HttpWebRequests.

Der will aber ein Byte-Array vom gemanagedten Typ:

array<Byte>^ bytes;



Da verwendest Du aber die falsche Methode...
Das verlangt ja ein *fixes* Array mit fester größe!

Das ist aber ganz schlecht, wenn Du einen *Stream* hast!

Deshalb solltest Du auch bei einem *Stream* bleiben!!!

Kann man das API-BYTE irgendwie konvertieren/pinnen oder soll's man sein
lassen, weil schon im Ansatz unsauber und statt des .NET-HttpWebRequest
lieber Win32-WinHttp o.à. nehmen?



Ein "WebRequest" gibt doch einen Stream zurück, oder?
Oder willst Du es als "POST/PUT" schreiben???

AFAIK gibt es einen .NET-Wrapper für IStream... bin mir aber gerade
nicht mehr sicher... das sollte dann gehen.

Greetings
Jochen

My blog about Win32 and .NET
http://blog.kalmbachnet.de/

Ähnliche fragen