掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
C言語との対比 (ID:23282)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Mr.XRAYさん、Cさんご返信誠にありがとうございます。 説明不足で申し訳ありません。 行いたいことは、PSLAD2を使用して、FX Docu Centre 320のプリンタードライバー(FAX送信用)の内容(宛先一覧に残っているFAX番号全て)をクリアしたいと思っているのですが、 PSLADのメーカーにも問合せたのですが、ソースの解析までは行わないということで行き詰ってしまいました。 Delphiのソースは下記のとおりなのですが、 if (fxPAPI_Get(hAPI,lpPrninfo)) = True then でFalseが返ってきます。 エラーの内容は 【プリンター情報を設定する構造体が指定されていません】で メーカーに問い合わせたところ 2番目のパラメータが渡されていない事(NULLポインタが 設定されています。)を意味しております。 正しく、FXPRNINFO構造体のポインタ(アドレス)を引数としているか どうかをご確認ください。 その他、変数の型など、誤りがないか再度ご確認願います。 の返信があったのですが、何がどう悪いか良く解らない状態に陥って しまいました。 以上宜しくお願いします。 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Db, ComCtrls, ExtCtrls, OleCtrls, CoReports_TLB, ComUnit, Buttons, MFREMOTELib_TLB; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } Ini_FaxDriver: string; end; //===== PSLADライブラリの構造体宣言 type fxPRNINFO = record szPrinterName : array[1..256] of Char; szDriverName : array[1..256] of Char; wSpecVersion : Word; wDriverVersion : Word; pDevmode : ^Int64; end; var Form1: TForm1; const PATH_INI_FILE = 'C:\TEST.INI'; // INIファイル DllName = 'PSLAD32.dll'; Function fxPAPI_Create(hWnd: THandle; printerName: String; iDBSwitch: Integer): integer; stdcall;external DllName; Function fxPAPI_Set(hAPI: Longint; STR: String): Boolean; stdcall;external DllName; Function fxPAPI_Destroy(hAPI: Longint): Boolean; stdcall;external DllName; Function fxPAPI_Get(hAPI: LongInt; lpPrninfo: fxPRNINFO): Boolean; stdcall;external DllName; Function fxPAPI_CreateDC(hAPI: Longint): Integer; stdcall;external DllName; Function fxPAPI_DeleteDC(hAPI, hdc:Longint): Boolean; stdcall;external DllName; Function fxPAPI_SetDefaultPrinter(hAPI:Longint; bFlag:Boolean): Boolean; stdcall;external DllName; Function fxPAPI_ResetDefaultPrinter(hAPI:Longint): Boolean; stdcall;external DllName; Function fxPAPI_SetFaxShowDialog(hAPI:Longint; bFlag:Boolean): Boolean; stdcall;external DllName; Function fxPAPI_Reset(hAPI:Longint; FaxNum:String): Boolean; stdcall;external DllName; implementation {$R *.dfm} var hAPI : Longint; WkStr : string; lpprninfo : fxPRNINFO; hdc : Integer; INI_SL : TStringList; IniName : string; plDevmode : int64; procedure TForm1.Button1Click(Sender: TObject); begin //INIファイル読み込み INI_SL:=TStringList.Create; IniName := PATH_INI_FILE; if FileExists(IniName) = False then begin MessageDlg('INI File(' + IniName + ')が存在しません。', mtInformation, [mbOK], 0); exit; end; INI_SL.LoadFromFile(IniName); //INIファイルload Ini_FaxDriver:=INI_SL.Values['FaxDriver']; hAPI:=fxPAPI_Create(0, 'FX DocuCentre Color 320 FAX', 1); if hAPI = 0 then //初期化に失敗した時 begin ShowMessage('FAX送信に失敗しました(Create)'); exit; end; if (fxPAPI_Get(hAPI,lpPrninfo)) = True then begin if (fxPAPI_Reset(hAPI,'FaxToNum')) = True then begin if (fxPAPI_SetDefaultPrinter(hAPI,True)) = True then begin if (fxPAPI_Destroy(hAPI)) = False then begin ShowMessage('Destoryエラー'); end; end; end; end; self.close; end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.