Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 流域图像分割中的Win32.memcpy错误_.net_Image_Image Processing_Watershed - Fatal编程技术网

.net 流域图像分割中的Win32.memcpy错误

.net 流域图像分割中的Win32.memcpy错误,.net,image,image-processing,watershed,.net,Image,Image Processing,Watershed,我正试图实现分水岭图像分割,正如前程序员在: 我也尝试添加FilterGrayToGray.cs代码,但我得到了win32.memcpy的错误 错误显示:“win32名称在此上下文中不存在” 如果我们将Win32.memcpy转换为Microsoft.Win32.memcpy,则会显示“名称空间中不存在memcpy”memcpy不是.NET Framework的一部分-memcpy是需要创建p/Invoke定义的非托管本机API。memcpy的定义必须位于不同的文件中 请参见下面的示例: //

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

我也尝试添加FilterGrayToGray.cs代码,但我得到了win32.memcpy的错误

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


如果我们将Win32.memcpy转换为Microsoft.Win32.memcpy,则会显示“名称空间中不存在memcpy”

memcpy
不是.NET Framework的一部分-
memcpy
是需要创建p/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 );
    }
}
//
///Windows API函数和结构。
/// 
内部静态类Win32
{
/// 
///复制一块内存。
/// 
///
///目标指针。
///源指针。
///要复制的内存块的长度。
///
///Return是指向目标的dst指针的值。
///
[DllImport(“ntdll.dll”,CallingConvention=CallingConvention.Cdecl)]
公共静态外部IntPtr memcpy(
IntPtr dst,
IntPtr src,
UIntPtr计数);
}
}

这个问题很少受到关注的原因是,在问题中或链接页面中很难找到对
memcpy
的任何引用。请添加未编译的代码,这样很容易修复。这对于
memcpy
来说是一个糟糕的定义。什么时候
int
可以表示指针?那么从什么时候起,
int
对于
size\u t
来说是合理的呢?@David Heffernan:对于size\u t,什么是合理的?乌因特?我不会说这很糟糕。可以改进吗?当然顺便说一句,这个定义有一个明显的优点,就是可以确保与使用它的代码兼容——它们来自同一个项目。@DavidHeffernan-Updated-我只是剪切并粘贴了这个示例,没有仔细查看它是否正确。