То, что здесь произошло, это то, что я не все зависимые библиотеки и другие библиотеки. После исправления этой проблемы, теперь я получаю еще одну ошибку
аюсь использовать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)
{
}
}
}
}