C++;CLI如何使用BinaryWriter编写非托管结构 我有一个结构,它在两个非托管和托管(CLI)C++项目之间共享。 struct FileHeader { uint16_t a; uint16_t b; uint32_t c; uint32_t d; };
(我不想将此结构修改为托管结构,例如) 到目前为止我拥有的:C++;CLI如何使用BinaryWriter编写非托管结构 我有一个结构,它在两个非托管和托管(CLI)C++项目之间共享。 struct FileHeader { uint16_t a; uint16_t b; uint32_t c; uint32_t d; };,c++,c++-cli,managed-c++,C++,C++ Cli,Managed C++,(我不想将此结构修改为托管结构,例如) 到目前为止我拥有的: FileHeader FileHeader={}; ... IntPtr ptr((void*)和文件头); 数组^buffer=gcnew数组(sizeof(FileHeader)); System::Runtime::InteropServices::Marshal::Copy(ptr、缓冲区、0、sizeof(FileHeader)); fileWriter->写入(缓冲区);//System::IO::BinaryWriter
FileHeader FileHeader={};
...
IntPtr ptr((void*)和文件头);
数组^buffer=gcnew数组(sizeof(FileHeader));
System::Runtime::InteropServices::Marshal::Copy(ptr、缓冲区、0、sizeof(FileHeader));
fileWriter->写入(缓冲区);//System::IO::BinaryWriter
使用System::IO::BinaryWriter是否还有其他(更好的)方法来编写此结构数据
[Serializable]
ref struct FileHeader { ... };
FileHeader fileHeader = { };
...
IntPtr ptr((void*)&fileHeader);
array<Byte>^ buffer = gcnew array<Byte> (sizeof(FileHeader));
System::Runtime::InteropServices::Marshal::Copy(ptr, buffer, 0, sizeof(FileHeader));
fileWriter->Write(buffer); // System::IO::BinaryWriter