我正试图实施分水岭图像分割,如前程序员所说:
我也试过添加FilterGrayToGray.cs代码,但是我遇到了win32.memcpy错误
错误显示:“此上下文中不存在名称win32”
如果我们将Win32.memcpy转换为Microsoft.Win32.memcpy,那么它会说“命名空间中不存在memcpy”
答案 0 :(得分:2)
memcpy
不是.NET Framework的一部分 - memcpy
是一个非托管的本机API,需要创建一个p / Invoke定义。 memcpy
的定义必须位于不同的文件中。
请参阅以下示例:
/// <summary>
/// Windows API functions and structures.
/// </summary>
internal static class Win32
{
/// <summary>
/// Copy a block of memory.
/// </summary>
///
/// <param name="dst">Destination pointer.</param>
/// <param name="src">Source pointer.</param>
/// <param name="count">Memory block's length to copy.</param>
///
/// <returns>Return's the value of <b>dst</b> - pointer to destination.</returns>
///
[DllImport( "ntdll.dll", CallingConvention = CallingConvention.Cdecl )]
public static extern IntPtr memcpy(
IntPtr dst,
IntPtr src,
UIntPtr count );
}
}