MemCpy (msvcrt)
Last changed: -79.6.100.3

.
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