1

正如前程序员所说,我正在尝试实现分水岭图像分割:

使用 c# 或 c++ 进行分水岭

我也尝试添加 FilterGrayToGray.cs 代码,但出现 win32.memcpy 错误

错误显示:“名称 win32 在此上下文中不存在”

如果我们将 Win32.memcpy 转换为 Microsoft.Win32.memcpy 那么它会说“命名空间中不存在 memcpy”

4

1 回答 1

2

memcpy不是 .NET Framework 的一部分 -memcpy是需要创建 ap/Invoke 定义的非托管本机 API。的定义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 );
    }
}
于 2012-02-26T22:29:45.653 回答