7

私のプロジェクトでエラーが発生します。

*DLL「gsdll32.dll」で「gsapi_new_instance」という名前のエントリポイントが見つかりません。*

Ghost-script Interpreterdll'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());
}

このエラーは、Ghost-Script Interpreter APIによって提供されるサンプルデモで同じコードが適切に実行されるため、gsdll32.dllライブラリの配置ミスが原因であると考えています。dll-gsdll32.dllを保持する正確な場所を提案してください。 !!

4

3 に答える 3

9

この質問は少し古いことは知っていますが、誰かがこの問題を抱えている場合は、次の方法で解決します。VisualStudiohttp://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 に答える