memcpy (msvcrt)
Last changed: -90.187.255.169

.
Summary
Copies count bytes of src to dest. If the source and destination overlap, the behavior of memcpy is undefined. Use memmove to handle overlapping regions.

C# Signature:

[DllImport("msvcrt.dll", EntryPoint = "memcpy", CallingConvention = CallingConvention.Cdecl, SetLastError = false)]
public static extern IntPtr memcpy(IntPtr dest, IntPtr src, UIntPtr count);

VB Signature:

Declare Function memcpy Lib "msvcrt.dll" (TODO) As TODO

Return Value:

The value of dest.

User-Defined Types:

None.

Alternative Managed API:

System.Buffer.BlockCopy, Marshal.Copy and Array.Copy provide similar services, but require one or two managed arrays instead of pointers.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

public static Bitmap Clone(Bitmap src)

        {
            // get source image size
            int width = src.Width;
            int height = src.Height;

            // lock source bitmap data
            BitmapData srcData = src.LockBits(
                new Rectangle(0, 0, width, height),
                ImageLockMode.ReadWrite, src.PixelFormat);

            // create new image
            Bitmap dst = new Bitmap(width, height, src.PixelFormat);

            // lock destination bitmap data
            BitmapData dstData = dst.LockBits(
                new Rectangle(0, 0, width, height),
                ImageLockMode.ReadWrite, dst.PixelFormat);

            memcpy(dstData.Scan0, srcData.Scan0, new UIntPtr((uint)height * (uint)srcData.Stride));

            // unlock both images
            dst.UnlockBits(dstData);
            src.UnlockBits(srcData);

            return dst;
        }

Documentation
memcpy on MSDN