C# 在C中如何将数据从指针复制到指针?

C# 在C中如何将数据从指针复制到指针?,c#,c++,.net,unmanaged,C#,C++,.net,Unmanaged,我正在转换一个遗留的C++代码,需要在C中等价的MimcPyPys帮助。我需要复制一个指针中的数据到另一个指针,如C++代码中所示。p> 我尝试了C++的CopyAc忆、数组、复制和其他方法,但是谷歌似乎没有帮助。我想将下面显示的代码转换为等价的C语言。任何帮助都将不胜感激 memcpy_s((char*)pDIB + sizeof(BITMAPINFOHEADER), bmpHeader.biSizeImage, pRawData, bmpHeader.biSizeIm

我正在转换一个遗留的C++代码,需要在C中等价的MimcPyPys帮助。我需要复制一个指针中的数据到另一个指针,如C++代码中所示。p> 我尝试了C++的CopyAc忆、数组、复制和其他方法,但是谷歌似乎没有帮助。我想将下面显示的代码转换为等价的C语言。任何帮助都将不胜感激

memcpy_s((char*)pDIB + sizeof(BITMAPINFOHEADER), bmpHeader.biSizeImage,
            pRawData, bmpHeader.biSizeImage);

这段代码获取指针并添加BITMAPHeader的大小,然后向其中添加另一个指针数据。我没有在C中看到任何Marshal.PointerToPointer,也不知道如何编写它。

您不必担心C中的指针,一切都是可以管理的

如果您试图使用位图数据,请使用托管类,并使用设置为原始字节数据的流创建位图。或者,您可以使用该类


如果您实际上仍在与非托管代码交互,并试图从中获取数据,则可以使用和固定缓冲区。但是,如果要将某些内容转换为纯C,则应该能够完全放弃指针。只要把它们想象成对象实例和架构师…

你不必担心C中的指针,一切都是可以管理的

如果您试图使用位图数据,请使用托管类,并使用设置为原始字节数据的流创建位图。或者,您可以使用该类


如果您实际上仍在与非托管代码交互,并试图从中获取数据,则可以使用和固定缓冲区。但是,如果要将某些内容转换为纯C,则应该能够完全放弃指针。只需将它们视为对象实例和架构师…

建议:不要逐字翻译代码,而有效的项目几乎总是很差。要获得好的结果,您需要做的是充分理解源程序的行为,并使用新语言、结构、库和,如果你要远离C++,最好用C/.NET的方式来改写代码,而不是用指针和指针来进行一对一的映射,否则你最好把代码放在C++中。如果.Net库中还没有位图文件读取器/写入器可供您使用,我会感到非常惊讶。此代码将获取指针并添加BITMAPHeader的大小,然后向其添加另一个指针数据-您需要从更高的层次理解此代码。你的C++代码显示了C或C++中的底层BMP处理。由于处理图像和位图应该在一个或多个.NET类中可用,因此.NET语言无需转到低级。看起来您正在从位图结构复制原始图像数据。此数据将以字节数组的形式存储在C中,因此请使用array.Copy.Recommension:不要逐字翻译代码,而有效的项目几乎总是很差。要获得好的结果,您需要做的是充分理解源程序的行为,并使用新语言、结构、库和,如果你要远离C++,最好用C/.NET的方式来改写代码,而不是用指针和指针来进行一对一的映射,否则你最好把代码放在C++中。如果.Net库中还没有位图文件读取器/写入器可供您使用,我会感到非常惊讶。此代码将获取指针并添加BITMAPHeader的大小,然后向其添加另一个指针数据-您需要从更高的层次理解此代码。你的C++代码显示了C或C++中的底层BMP处理。由于处理图像和位图应该在一个或多个.NET类中可用,因此.NET语言无需转到低级。看起来您正在从位图结构复制原始图像数据。这些数据将以字节数组的形式存储在C中,所以请使用array.Copy。我认为您必须担心无指针。你仍然可以用它们来破坏一个程序,只是更难,更不频繁。我得说你必须担心无指针。你仍然可以用它们来破坏一个程序,只是更难,更不频繁。