Delphiでdllが読み込みを教えてください。


マサミ  2022-06-23 02:25:16  No: 150291  IP: 192.*.*.*

初めて利用させて頂きます。

WinXPが故障でWin10に更新しました。ところが一部の印刷プログラムが実行時dll無いとメッセージがでます。

dllの読み込み指定

  type
    TIMPP_POC = record
        PaperSet,Sheet,LengthX,LengthY,Jyoutan,Duplex,Color,BothPrt,
        AutoChange,Renzoku,RenJyotan,RenTani,MisOver,OverStep,OvePos1,
        OvePos2,Denth: WORD;
        rsv: Array[0..6] of WORD;
    end;

  type
    TIMPP_DOCINFO = record
        cbSize : Integer;
        lpszDocName,lpszOutput : LPSTR;
    end;

Const
  TestLib = 'C:\WINDOWS\SYSTEM32\F5CMILIB.DLL';

Var
  Form1 : TForm1;

  Phnd  : HDC;
  P_Poc : Timpp_poc;
  DocTb : TIMPP_DOCINFO;

  function Impp_Open(hWnd: HWND;hdc: Pointer;PrinterName: LPSTR;
           lpdi:Pointer;mode: WORD):WORD; stdcall; external TestLib;

  function Impp_Close(hdc: HDC):WORD; stdcall; external TestLib;



調べてみたところ、古い指定のようです。どなたか教えて下さい。

編集 削除
take  2022-06-23 02:50:17  No: 150292  IP: 192.*.*.*

単純にDLLファイルが無い というのはないとして
こんな感じでDLLが読み出せる状態にあるのか確認からですかね?

procedure TFormMain.Button1Click(Sender: TObject);
const
  LIB_NAME = 'F5CMILIB.dll';
var
  FDllHandle     : THandle;  
begin
  FDllHandle := LoadLibrary(LIB_NAME);
  if FDllHandle = 0 then begin
    MessageDlg(LIB_NAME + ' が見つかりません', mtWarning, [mbOK], 0);
  end;
end;

編集 削除
AAAAA  2022-06-23 16:45:13  No: 150293  IP: 192.*.*.*

ドライバーは OS が 32Bit と 64Bit 自動判定でインストールされるみたいだけど
ターゲットプラットフォームは ドライバーと 32/64Bit あってる?

64bit OS で 32bit でビルドしてたら無理だよ

編集 削除