Einzelnen Beitrag anzeigen

jus

Registriert seit: 22. Jan 2005
343 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Bitte um Hilfe bei Übersetzung C++->Delphi mit Fremd-

  Alt 4. Mär 2010, 14:39
Ich muß zugeben, dass ich noch nicht viel Erfahrungen mit DLL habe. Die bisherigen DLL waren meist Windows Standard DLLs, wo man die Funktionen nicht in einem C++Objekt gekapselt waren. Es scheitert schon daran, wenn ich die Funktion "CPrintFunc::GetData" verwenden möchte, benötige ich "CreatePrintSdk()" und weiß nicht wie man sowas nachbauen könnte.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, PRINTSDKHeader, StdCtrls, HPUTIL_COMM;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  PRINT_GetData: function(var out_AlertString: HPUTIL_STR1023; var out_PrintData: PRINT_DATAINF): Integer; cdecl stdcall;
  CPrintPreset: procedure(const IN_LINTERNALVERSION: Integer); cdecl stdcall ;

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  AlertString: HPUTIL_STR1023;
  PrintData: PRINT_DATAINF;
  Handle: THandle;
  s:String;

begin
   Handle:=LoadLibrary(PChar('PRINTSDK.DLL'));
  if Handle = 0 then begin
    ShowMessage('DLL konnte nicht geladen werden.');
    Exit;
  end;
  @CPrintPreset := GetProcAddress(Handle, PChar('CPrintPreset'));
  if @CPrintPreset = nil then
  begin
    Str(GetLastError, s);
    showmessage('CPrintPreset Fehlernummer: '+s);
  end;

  @PRINT_GetData := GetProcAddress(Handle, PChar('PRINT_GetData'));
  if @PRINT_GetData = nil then
  begin
    Str(GetLastError, s);
    showmessage('PRINT_GetData Fehlernummer: '+s);
  end;

  CPrintPreset(PRINT_INTERNAL_VERSION); //<---------------

  //PRINT_GetData(AlertString,PrintData);
  //Memo1.Lines.Add(IntToStr(PRINTData.Copies.lValue));

  FreeLibrary(Handle);

end;

end.
  Mit Zitat antworten Zitat