C# 无法加载DLL';tesseract.dll';在C中#

C# 无法加载DLL';tesseract.dll';在C中#,c#,dll,ocr,tesseract,C#,Dll,Ocr,Tesseract,在使用OCR时,我尝试遵循以下步骤 我遇到一个未处理的异常 Patagames.Ocr.dll中发生类型为“System.exception”的未处理异常 其他信息:无法加载DLL“tesseract.DLL”:找不到指定的模块。请确保将其复制到应用程序文件夹。或者,可以使用TessBaseAPICreate方法中的specificPath参数指定tesseract.dll文件的完整路径 因此,我按照一些说明指定了完整路径,但它仍然不起作用 OcrApi.PathToEngine = @&quo

在使用OCR时,我尝试遵循以下步骤

我遇到一个未处理的异常


Patagames.Ocr.dll中发生类型为“System.exception”的未处理异常

其他信息:无法加载DLL“tesseract.DLL”:找不到指定的模块。请确保将其复制到应用程序文件夹。或者,可以使用TessBaseAPICreate方法中的specificPath参数指定tesseract.dll文件的完整路径

因此,我按照一些说明指定了完整路径,但它仍然不起作用

OcrApi.PathToEngine = @"d:\MyApp\tesseract.dll";
using (var api = OcrApi.Create())
{
    api.Init();
}
是否有其他方法可以实现此功能?

来自文档:

在某些情况下,库初始值设定项找不到要加载的tesseract.dll库。这种情况的一个典型示例是Web应用程序。Web应用程序运行在IIS工作目录中,与经典应用程序不同。因此,标准LoadLibrary函数在加载过程中无法找到dll

在这种情况下,必须通过此属性显式指定tesseract.dll文件的完整路径

初始化算法如下:

  • 试图从通过PathToEngine属性接收的路径加载dll
  • 正在尝试从x64或x86文件夹加载dll。根据进程编译模式和操作系统自动检测到所需的文件夹
  • 试图从调用初始化的进程的工作目录加载dll
  • 试图从调用初始化的程序集所在的目录加载dll。 否则,初始化错误

通过使用此方法,它对我有效:

OcrApi.PathToEngine = @"d:\MyApp\tesseract.dll"; 
但主要问题是,在构建之前,请将此文件夹
复制到项目根目录中(右键单击根项目>使用窗口资源管理器打开文件夹)并确保您已在项目中添加了
Patagames.Ocr
引用,然后转到
\bin\Debug\
并在此处粘贴
即可


运行该项目并查看魔法:)

您能发布准确的错误消息吗?Patagames.Ocr.dll中出现“System.exception”类型的未处理异常。其他信息:无法加载dll“tesseract.dll”:找不到指定的模块。请确保将其复制到应用程序文件夹。或者,您可以使用TessBaseAPICreate方法中的specificPath参数指定tesseract.dll文件的完整路径。您的应用程序是32位、64位还是任意CPU?是否确实匹配了正确的DLL?很清楚-路径d:\MyApp\tesseract.DLL无效。将tesseract.dll复制到bin文件夹,并将OcrApi.PathToEngine更改为=@“tesseract.dll”;是的,我的电脑是64位的,我肯定我用过64位的DLL