2012-02-24 2 views
1

Я пытаюсь реализовать водораздела сегментации изображения, как сказал бывший программист в:Win32.memcpy Ошибка водоразделов изображения Сегментация

Watershed using c# or c++

Я тоже попытался добавить код FilterGrayToGray.cs, но я получил ошибку win32. тетсру

ошибка показывает: «имя win32 не существует в этом контексте»

если мы преобразуем Win32.memcpy в Microsoft.Win32.memcpy тогда он говорит: «тетср не существует в пространстве имен»

+0

Причина этого вопроса уделяется мало внимания, что трудно найти какие-либо ссылки на 'memcpy' в вопросе, или в связанных страницах. Добавьте код, который не компилируется, и его будет очень легко исправить. –

ответ

2

memcpy не является частью .NET Framework. memcpy - это неуправляемый собственный API, который должен иметь определение p/Invoke. Defination for 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); 
    } 
} 
+0

Это ужасное определение для 'memcpy'. С каких это пор 'int' может представлять указатель? А с каких пор 'int' разумно для' size_t'? –

+0

@ Давид Хеффернан: что разумно для size_t? UINT? Я бы не сказал, что это ужасно. Может быть улучшена? Конечно. Кстати, это определение имеет очевидное преимущество, заключающееся в совместимости * с уверенностью * с кодом, который его использует, - они происходят из одного и того же проекта. –

+1

Два указателя должны быть IntPtr. Для size_t используйте UIntPtr. –