AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Win32 DLL erstellen

Ein Thema von bdaehn · begonnen am 29. Apr 2005 · letzter Beitrag vom 2. Mai 2005
 
bdaehn

Registriert seit: 22. Jan 2004
Ort: Wiesbaden
9 Beiträge
 
Delphi 7 Enterprise
 
#1

Win32 DLL erstellen

  Alt 29. Apr 2005, 14:37
Hallo,

ist schon eine Weile her, dass ich mit Delphi mal was gemacht habe und im Moment komme ich bei folgendem Problem nicht weiter:

Ich wuerde gerne ein Extension-DLL fuer einen virtuellen Drucker-Treiber mit Delphi ertellen - Win32 DLL mit Unicode Support - habe angefangen, das entsprechende C-Headerfile umzusetzen, aber irgdendwie scheint das ganze nicht zu funktionieren.
Hier das C-Headerfile:

Delphi-Quellcode:
enum
{
    SC_OUTPUT_BLACKWHITE = 1,
    SC_OUTPUT_GRAYSCALE,
    SC_OUTPUT_COLOR,
}
;

enum
{
    SC_TIFTYPE_NONE = 1,
    SC_TIFTYPE_PACKBITS,
    SC_TIFTYPE_CCITT_HUFFMAN,
    SC_TIFTYPE_CCITT_T4,
    SC_TIFTYPE_CCITT_T6,
    SC_TIFTYPE_JPEG,
}
;

typedef struct _SCJOBINFO
{
   // Form name
    TCHAR formName[32];
   
    // Only values between 100 to 300 dpi are accepted
    int printQuality;

    // One of SC_OUTPUT_BLACKWHITE to SC_OUTPUT_COLOR 
    int colorType;

    // Only values between 1 to 100 are accepted.
    // Higher value means better quality.
    int jpegQuality;

    // One of SC_TIFTYPE_NONE to SC_TIFTYPE_JPEG.
    // PackBits and one of the CCITT types are only applicable if colorType
    // is set to SC_OUTPUT_BLACKWHITE.
    int tiffCompression;

    // Only applicable if tiffCompression is set to SC_TIFTYPE_JPEG.
    // Only values between 1 to 100 are accepted.
    // Higher value means better quality.
    int tiffQuality; 

    // Only values between 1 to 100 are accepted.
    // Higher value means better quality.
    int pdfQuality;
}

SCJOBINFO;

enum
{
    SC_BMP = 1,
    SC_PNG,
    SC_JPG,
    SC_TIF_SINGLE,
    SC_PDF_SINGLE,
    SC_TIF_MULTIPLE,
    SC_PDF_MULTIPLE,
}
;

typedef struct _SCFILEINFO
{
    // Output filename without extension. This parameter is required.
    wchar_t name[MAX_PATH];
   
    // Extension of output filename. This parameter is optional.
    // If none is supplied, a default extension will be used.
    wchar_t ext[MAX_PATH];
   
    // Output image type, which could be one of SC_BMP to SC_PDF_MULTIPLE. <tt>SC_PDF_MULTIPLE</tt>.
    // This parameter is required.
    int type;
}

SCFILEINFO;

typedef BOOL (WINAPI *SCGETJOBINFOFUNC) (SCJOBINFO*);
typedef BOOL (WINAPI *SCGETSAVEFILENAMEFUNC) (SCFILEINFO*);
typedef void (WINAPI *SCENDOFJOBFUNC) ();

Hier, was ich bislang gemacht habe:
Delphi-Quellcode:
library dll;


uses
  ShareMem, SysUtils, Classes, Windows, Messages, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;


{$R *.res}

const
  REGROOT = 'Software\\bdaehn\\SoftCopy';

type
  SCJOBINFO = record
    formName: Array[0..32-1] of CHAR;
    printQuality: Integer;
    colorType: Integer;
    jpegQuality: Integer;
    tiffCompression: Integer;
    tiffQuality: Integer;
    pdfQuality: Integer;
end;



type
  SCFILEINFO = record
    name: Array[0..MAX_PATH-1] of WCHAR;
    ext: Array[0..MAX_PATH-1] of WCHAR;
    typ : Integer;
end;



function scGetJobInfo(var test: SCJOBINFO):Bool;
begin
// ShowMessage('buh');
   Result:=True;
end;

function scGetSaveFilename(var test: SCFILEINFO):Bool;
begin
  //ShowMessage('buh');
     Result:=True;
end;

function scEndOfJob():Bool;
begin
// ShowMessage('buh');
     Result:=True;
end;


begin
end.
Code kompiliert, aber ich bekomme bei der Benutzung des Treibers eine "Memory could not be read" Execptions - irgendeine Idee ? Ich gehe einmal davon aus, dass ich etwas grobes falsch mache, was Uebergabe-Parameter und dergleichen angeht. Wichtig ist wohl auch Unicode-Support fuer diese DLL!
Attached ist noch ein Beispiel in C++ ...

Vielen Dank und Gruss
/bjoern
Angehängte Dateien
Dateityp: cpp softcopyex_158.cpp (3,4 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz