2014-09-03 59 views
0

我試圖從用以下示例代碼Delphi應用程序自動化的PDFCreator:EOleSysError與消息「的參數無效的號碼」從Delphi應用程序自動化的PDFCreator當

procedure TForm13.Button1Click(Sender: TObject); 
var 
    PDFCreatorQueue, 
    job: OleVariant; 
begin 
    PDFCreatorQueue := CreateOleObject('PDFCreatorBeta.JobQueue'); 

    if not VarIsNull(PDFCreatorQueue)then 
    begin 
    try 
     PDFCreatorQueue.Initialize(); 
// 
//  if not PDFCreatorQueue.WaitForJob(15) then 
//  MessageDlg(SPDFCreatorTimeout, mtError, [mbOK], 0) 
//  else 
//  begin 
//  job := PDFCreatorQueue.NextJob(); 
//  job.ConversionProfileByGuid := 'DefaultGuid'; 
//  job.ConvertTo(FilePath); 
// 
//  if(not job.IsJobFinished or not job.JobSucceed) then 
//   MessageDlg(Format(SPDFCreatorCouldNotConvertFile, [FilePath]), mtError, [mbOK], 0); 
//  end; 
    finally 
     PDFCreatorQueue.ReleaseCom(); 
    end; 
    end 
    else 
    MessageDlg(SPDFCreatorConnectionError, mtError, [mbOK], 0); 
end; 

在線路PDFCreatorQueue.Initialize();發生異常:

[ComVisible(true)] 
[ClassInterface(ClassInterfaceType.AutoDispatch)] 
[Guid("66A9CAB1-404A-4918-8DE2-29C26B9B271E")] 
[ProgId("PDFCreatorBeta.JobQueue")] 
public class Queue : IQueue 
{ 

... 

    /// <summary> 
    ///  Initializes the essential components like JobInfoQueue for the COM object 
    /// </summary> 
    public void Initialize() 
    { 

我缺少什麼:

EOleSysError與消息「無效的數量參數」

上的PDFCreator側的方法初始化沒有任何參數?

+0

你有一個PDFCreator的類型庫導入單元? – MartynA 2014-09-03 08:26:54

+0

我沒有它,但源代碼位於以下地址:http://download.pdfforge.org/download/pdfcreator/list – Branko 2014-09-04 09:42:07

+0

對不起,我看不到有任何源代碼的跡象,只有各種PDFCreator和PDFCreatorBeta可執行文件。在任何情況下,TypeLib導入單元通常都是在Delphi中通過在.TLB,.OCX,.DLL或更少見的.Exe文件上運行Delphi嚮導來創建的。我無法對任何PdfCreator 1.7 *或1.9 *文件fwiw運行嚮導(在D7或XE6中)。奇怪的是,谷歌發現了一些來自已經成功的人的消息,但是隻有在早期版本中才能看到。順便說一句,你用的是什麼德爾福版本? – MartynA 2014-09-04 14:37:20

回答

1

有從Delphi調用COM的具體行爲。

當你當你在Delphi代碼中調用參數等方法少.NET實現COM可見裝配

class CShaprClass 
{ 
Initialize(); 
} 

的參數較少方法:

PDFCreatorQueue.Initialize(); 

你會得到無效的參數錯誤。 德爾福在這個調用方法轉錄通知COM將發送參數。

你應該叫

PDFCreatorQueue.Initialize; 

最好的問候, IRQ MISHELL

相關問題