如前所述,WindowsRuntimeBufferExtensions
從命名空間System::Runtime::InteropServices::WindowsRuntime
僅適用於.Net應用程序,而不是本機C++應用程序。
一種可能的解決辦法是使用Windows::Storage::Streams::DataReader
:
void process(Windows::Storage::Streams::IBuffer^ uselessBuffer)
{
Windows::Storage::Streams::DataReader^ uselessReader =
Windows::Storage::Streams::DataReader::FromBuffer(uselessBuffer);
Platform::Array<Byte>^ managedBytes =
ref new Platform::Array<Byte>(uselessBuffer->Length);
uselessReader->ReadBytes(managedBytes);
BYTE * bytes = new BYTE[uselessBuffer->Length];
for(int i = 0; i < uselessBuffer->Length; i++)
bytes[i] = managedBytes[i];
(...)
}
我改變了我的實現,現在我正在使用這種方法,因爲它提高了我的應用程序的性能。謝謝。 – 2013-02-01 20:28:16