AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi DLL "Windows" function implementieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL "Windows" function implementieren

Ein Thema von gizzy · begonnen am 30. Sep 2008 · letzter Beitrag vom 1. Okt 2008
Antwort Antwort
Benutzerbild von gizzy
gizzy

Registriert seit: 3. Jun 2007
59 Beiträge
 
Delphi 2007 Enterprise
 
#1

DLL "Windows" function implementieren

  Alt 30. Sep 2008, 18:25
Hi,

ich möchte gerne in meiner DLL einige function aus der WIndows Unit(auch aus anderen) verwenden, aber sie nicht komplett einfügen um die größe möglichst gering zu halten.

Bsp: OpenProcess

In der DLL Unit:

Delphi-Quellcode:
uses
  SysUtils,
  Classes,
  resources in 'resources.pas';

[..]
//Funktion mit OpenProcess ...
resources.pas:

Delphi-Quellcode:
unit resources;

interface

const
  kernel32 = 'kernel32.dll';

implementation

function OpenProcess; external kernel32 name 'OpenProcess';

end.
Jetzt meckert der Delphi bei "function Op...": Funktion benötigt Ergebnistyp.
Irgentwie Logisch, aber in der Windows Unit steht das ja genauso :/.

Was muss ich machen?
David
[Fehler] Unit1.pas(1): Dein Kaffee ist kalt.
[Fehler] Unit1.pas(2): Dein linker großer Zeh ist eingeschlafen.
[Fataler Fehler] Projekt1.dpr(5): Verwendete Unit "Unit1.pas" kann nicht comiliert werden.
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#2

Re: DLL "Windows" function implementieren

  Alt 30. Sep 2008, 18:38
Im Interface-Teil der Unit steht noch so einiges was du brauchst. Such einfach mal nach OpenProcess in der Unit Windows.
Jan
  Mit Zitat antworten Zitat
Benutzerbild von gizzy
gizzy

Registriert seit: 3. Jun 2007
59 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: DLL "Windows" function implementieren

  Alt 30. Sep 2008, 19:12
Da steht ne ganze Menge!
David
[Fehler] Unit1.pas(1): Dein Kaffee ist kalt.
[Fehler] Unit1.pas(2): Dein linker großer Zeh ist eingeschlafen.
[Fataler Fehler] Projekt1.dpr(5): Verwendete Unit "Unit1.pas" kann nicht comiliert werden.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#4

Re: DLL "Windows" function implementieren

  Alt 30. Sep 2008, 19:22
Zitat von Mr_G:
Im Interface-Teil der Unit steht noch so einiges was du brauchst. Such einfach mal nach OpenProcess in der Unit Windows.
Zitat von gizzy:
Da steht ne ganze Menge!
Lol, Du bist lustig! Mr_G meinte, Du sollst mal nach OpenProcess in Windows.pas suchen. Im Interface-Teil der Unit findest Du:

Delphi-Quellcode:
function OpenProcess(dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwProcessId: DWORD): THandle; stdcall;
{$EXTERNALSYM OpenProcess}
Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von gizzy
gizzy

Registriert seit: 3. Jun 2007
59 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: DLL "Windows" function implementieren

  Alt 30. Sep 2008, 19:26
Danke.
Ich glaub ich komme trotzdem nicht um die Unit herum, da ich auch den Typ "DWord" brauche
David
[Fehler] Unit1.pas(1): Dein Kaffee ist kalt.
[Fehler] Unit1.pas(2): Dein linker großer Zeh ist eingeschlafen.
[Fataler Fehler] Projekt1.dpr(5): Verwendete Unit "Unit1.pas" kann nicht comiliert werden.
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#6

Re: DLL "Windows" function implementieren

  Alt 30. Sep 2008, 19:29
Jaja... da führt eines zum anderen.
DWORD ist aber afaik nichts anderes als ein LongWord. Und LongWord müsste in der Unit System sein.
Jan
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#7

Re: DLL "Windows" function implementieren

  Alt 1. Okt 2008, 13:33
DWord ist als Cardinal deklariert, wenn ich mich nicht irre.

Ausserdem wird aus der Windows.pas immer nur das eingebunden was du auch wirlkich verwendest. Desahlb wird deine Exe dadurch nicht wirklich kleiner. Das sieht bei der Form.pas z.b. anders aus, da bringt es natürlich etwas. Es gibt auch "tiny" Versionen z.b. für die System.pas/ Sysxx etc. wo du ein paar KB einsparst.

Aber warum muss die Echse so klein sein? auf den KB für die Windows.pas bzw 7KB für die TinySys kommts doch net an oder etwa doch?
  Mit Zitat antworten Zitat
stefan2005

Registriert seit: 30. Sep 2003
Ort: Puchheim
250 Beiträge
 
Delphi 6 Personal
 
#8

Re: DLL "Windows" function implementieren

  Alt 1. Okt 2008, 16:55
Hi,
soweit ich weiss steht in der Windows.pas kein Code sondern nur Definitionen von Typen und Funktionen, also bekommt du eine Größenersparnis von genau 0 KB, wenn du diese rauslässt

Grüsse,
Stefan
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

Re: DLL "Windows" function implementieren

  Alt 1. Okt 2008, 17:00
Zitat von stefan2005:
Hi,
soweit ich weiss steht in der Windows.pas kein Code sondern nur Definitionen von Typen und Funktionen, also bekommt du eine Größenersparnis von genau 0 KB, wenn du diese rauslässt

Grüsse,
Stefan
Stimmt nicht, erstens bracuhen Definitionen auch Platz, und zweitens ist sehr wohl Code in der System.pas enthalten.

[edit]Upps, sorry, hab gar nicht gesehen, dass es hier um die Windows.pas geht [/edit]
  Mit Zitat antworten Zitat
stefan2005

Registriert seit: 30. Sep 2003
Ort: Puchheim
250 Beiträge
 
Delphi 6 Personal
 
#10

Re: DLL "Windows" function implementieren

  Alt 1. Okt 2008, 17:03
Hi,
wird reden doch von der Windows.pas und nicht von der System.pas
und Definitionen brauchen in der Regel keinen Platz (außer es werden diese Funktionen verwendet)

Grüsse,
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz