C# 代码到 C++(内存映射文件)

本文关键字:映射 文件 内存 代码 C++ | 更新日期: 2023-09-27 18:31:07

这是我的C#应用程序中的方法。我需要将此代码转换为 c++

MemoryMappedFile myNonPersisterMemoryMappedFile = MemoryMappedFile.CreateNew("myNonPersisterMemoryMappedFile", 10000000);
public static void send_data(byte[] b)
    {
        var bytes = Encoding.ASCII.GetBytes(b.Length.ToString());
        byte[] f = new byte[b.Length + 1 + bytes.Length];
        f[0] = (byte)bytes.Length;
        Array.Copy(bytes, 0, f, 1, bytes.Length);
        Array.Copy(b, 0, f, 1 + bytes.Length, b.Length);
        BinaryWriter bw = new BinaryWriter(myNonPersisterMemoryMappedFile.CreateViewStream(0, 10000000));
        bw.Write(f, 0, f.Length);
        bw.Close();
    }

C# 代码到 C++(内存映射文件)

从一种语言直接音译到另一种语言是一个坏主意

相反:

  1. 了解代码的作用并制定其合同。
  2. 用目标语言设计正确的界面。
  3. 以目标语言实现它。

这样做,如果您有任何具体问题,请回来。

System::String^ str = rgbValues->Length.ToString();
array<Byte>^ one =System::Text::Encoding::ASCII->GetBytes(str);
array<Byte>^ all = gcnew array<Byte>(one->Length + 1 + rgbValues->Length);
all[0] = one->Length;
System::Array::Copy(one, 0, all, 1, one->Length);
System::Array::Copy(rgbValues, 0, all, (1 + one->Length), rgbValues->Length);