7

我的项目给出错误..

*无法在 DLL 'gsdll32.dll' 中找到名为 'gsapi_new_instance' 的入口点。*

尝试使用 Ghost-script Interpreter dll 'gsdll32.dll' 将 .pdf 转换为图像格式时

即使我尝试将这个 dll 复制到所有需要的地方,如许多论坛中所说的那样

Win\System32 或在项目目录中..错误仍然相同..:(

我使用了 Ghost-script 给出的 PDFConvert.cs 类,并在我的转换按钮单击上编写了以下代码:

private void btnConvert_Click(object sender, RoutedEventArgs e)
{
  //First We Check whether the Dll is present

    if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\gsdll32.dll"))
    {
        MessageBox.Show("The library 'gsdll32.dll' required to run this program is not present! download GhostScript and copy \"gsdll32.dll\" to this program directory");
        return;
    }
    if (string.IsNullOrEmpty(txtSingleFile.Text))
    {
        MessageBox.Show("Enter the File name");
        txtSingleFile.Focus();
        return;
    }
    else if (!File.Exists(txtSingleFile.Text))
    {
        MessageBox.Show("The File Does not exists");
        txtSingleFile.Focus();
    }

    else
        ConvertPdfToImage(txtSingleFile.Text);
}

我的 ConvertPdfToImage 方法是这样的:

//The Ghost-Script Class Object Creation:
PdfToImage.PDFConvert converter = new PdfToImage.PDFConvert();
public void ConvertPdfToImage(string filename)
{
    //bool converted = false;
    System.IO.FileInfo input = new FileInfo(filename);
    string outPut = string.Format("{0}\\{1}{2}", input.DirectoryName, input.Name, txtExtensionName.Text);

    converter.OutputFormat = txtExtensionName.Text;

    outPut = outPut.Replace(txtExtensionName.Text, string.Format("{1}{0}", txtExtensionName.Text, DateTime.Now.Ticks));
    converter.Convert(input.FullName, outPut);
    lblConvertingResult.Content = string.Format("{0}:File Converted..!!", DateTime.Now.ToShortTimeString());
}

我相信这个错误是因为 gsdll32.dll 库的错位造成的,因为相同的代码在 Ghost-Script Interpreter API 提供的示例演示中运行良好。请建议我应该保留 dll-gsdll32.dll 的确切位置。 !!

4

3 回答 3

9

我知道这个问题有点老了,但如果有人有这个问题,我会这样解决:从 Visual Studio http://www.nuget.org/packages/GhostScriptSharp/下载并安装 GhostScriptSharp 包

于 2013-11-21T17:54:02.843 回答
0

尝试使用 dll 的完整路径,而不仅仅是名称。
就像如果你的 dll 保存在 D:\TestApplication\bin\gsdll32.dll 那么,

[DllImport("gsdll32.dll", EntryPoint="gsapi_new_instance")] 

以上声明将

[DllImport("D:\\TestApplication\\bin\\gsdll32.dll", EntryPoint="gsapi_new_instance")]
于 2015-07-20T07:43:37.513 回答
-1

我终于弄明白了。我下载了最新的 DLL,更改了代码以查找更新的 dll,它工作正常。

于 2019-07-31T19:00:07.543 回答