Использование pHash из .NET

Я пытаюсь использовать pHash из .NET

Первое, что я попробовал, это зарегистрировать (regsvr32) phash.dll и спросил здесь. Во-вторых, я пытался импортировать с помощью DllImport, как показано ниже.

    [DllImport(@".\Com\pHash.dll")]
    public static extern int ph_dct_imagehash(
        [MarshalAs(UnmanagedType.LPStr)] string file, 
        UInt64 hash);

Но когда я пытаюсь обратиться к вышеуказанному методу во время выполнения, появляется следующее сообщение об ошибке.

    Unable to find an entry point named 'ph_dct_imagehash' in DLL '.\Com\pHash.dll'.

Что означает "точка входа" и почему я получаю эту ошибку?

Спасибо.

FYI - Вот полный исходный код

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows;

namespace DetectSimilarImages
{
    public partial class MainWindow : Window
    {
        [DllImport(@".\Com\pHash.dll")]
        public static extern int ph_dct_imagehash(
            [MarshalAs(UnmanagedType.LPStr)] string file, 
            UInt64 hash);


        public MainWindow()
        {
            InitializeComponent();

            Loaded += MainWindow_Loaded;
        }

        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                UInt64 hash1 = 0, hash2 = 0;
                string firstImage = @"C:\Users\dance2die\Pictures\2011-01-23\177.JPG";
                string secondImage = @"C:\Users\dance2die\Pictures\2011-01-23\176.JPG";
                ph_dct_imagehash(firstImage, hash1);
                ph_dct_imagehash(secondImage, hash2);

                Debug.WriteLine(hash1);
                Debug.WriteLine(hash2);
            }
            catch (Exception ex)
            {

            }
        }


    }
}
9
задан Community 23 May 2017 в 12:02
поделиться