AGB  ·  Datenschutz  ·  Impressum  







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

WinAPI-Wrapper für Delphi

Ein Thema von lafl · begonnen am 11. Feb 2011 · letzter Beitrag vom 13. Feb 2011
Antwort Antwort
Seite 1 von 2  1 2      
lafl

Registriert seit: 11. Feb 2011
3 Beiträge
 
#1

WinAPI-Wrapper für Delphi

  Alt 11. Feb 2011, 19:32
Hallo,

Ich habe mir einen kleinen WinAPI-Wrapper mit Delphi gebaut und nun habe ich zwei Fragen. Wenn ich die Klasse CWindow mit Create aufrufe, kommt eine Runtime 216-Fehlermeldung. Wie kann man dieses Problem beheben?
Als Nächstes will ich versuchen, die WndProc-Funktion in Message-Mapping Funktionen - ähnlich der MFC -einzukapseln. Dafür habe ich bisher noch keinen richtigen Plan, jedoch habe ich es bereits ohne richtigem Erfolg versucht.

Die Dateien befinden sich im Anhang, wobei in "window.pas" die Klasse "CWindow" enthalten ist und im Projekt "test" befindet sich demnach ein kleiner Versuch.
Angehängte Dateien
Dateityp: zip apiwrapper.zip (2,6 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: WinAPI-Wrapper für Delphi

  Alt 11. Feb 2011, 20:52
Ich habe mir einen kleinen WinAPI-Wrapper mit Delphi gebaut und nun habe ich zwei Fragen. Wenn ich die Klasse CWindow mit Create aufrufe, kommt eine Runtime 216-Fehlermeldung. Wie kann man dieses Problem beheben?
Umgang mit dem Debugger lernen, diesen anwerfen und das Problem eingrenzen. Ansonsten ist die Frage zu allgemein um hier spezifische Antworten zu geben.

Als Nächstes will ich versuchen, die WndProc-Funktion in Message-Mapping Funktionen - ähnlich der MFC -einzukapseln. Dafür habe ich bisher noch keinen richtigen Plan, jedoch habe ich es bereits ohne richtigem Erfolg versucht.
Vergiß es. Ernsthaft!
Haste dir die MFC-Quellen mal angeschaut? Die basieren nicht nur auf diversen Mechanismen die man nur mit C++-Templates hinbringt (und Delphi Generics können nicht alles nachbilden) sondern vor allem auf jeder Menge Makros. Delphi hat keinen Präprozessor (und alle Versuche sowas nachzubilden fand ich bisher eher lachhaft) - einen CPP könnte man natürlich direkt einspannen (bspw. MCPP).
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: WinAPI-Wrapper für Delphi

  Alt 11. Feb 2011, 22:42
Mir scheint, du möchtest sogenannte Hier im Forum suchenNon-VCL-Programme mit Delphi schreiben.
Also Programme, die ohne VCL auskommen, direkt auf der Windows-API aufsetzen und daher besonders kleine Exe-Dateien haben.
  Mit Zitat antworten Zitat
lafl

Registriert seit: 11. Feb 2011
3 Beiträge
 
#4

AW: WinAPI-Wrapper für Delphi

  Alt 12. Feb 2011, 12:02
Hallo nochmal,

Ich habe nochmal eine überarbeitete Version des Fensters in den Anhang gelgt, wobei der Fehler aufgrund des fehlendem Constructors kam. Zur Zeit habe ich nicht vor, die WndProc-Funktion als Message-Mapping auszugeben, aber ich möchte, dass die WndProc-Funktion in der Klasse CWindow enthalten ist und dass ich diese von dort aus auch aufrufen kann. Meine Frage ist daher, ob es möglich ist, die WndProc als static zu deklarieren. Ich habe zwar etwas von class gelesen, aber das läuft nicht so ganz. Eine Fehlermeldung kommt zwar nicht, aber das Fenster wird nicht angezeigt und das Programm bleibt stecken.

Kann mir diesbezüglich jemand helfen?


@sx2008: So ungefähr. Ich möchte aber ein Fenster in einer Klasse einkapseln lassen. Für C++ gibt es dafür mehrere Tutorials, die mir aber aufgrund der Unterschiede der beiden Sprachen wenig helfen.
Angehängte Dateien
Dateityp: zip apiwrapper2.zip (2,1 KB, 15x aufgerufen)

Geändert von lafl (12. Feb 2011 um 12:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: WinAPI-Wrapper für Delphi

  Alt 12. Feb 2011, 12:25
Das wird das Problem sein: http://www.michael-puff.de/Programmi...ckMethod.shtml

Man beachte auch die Links am Ende des Artikels.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
lafl

Registriert seit: 11. Feb 2011
3 Beiträge
 
#6

AW: WinAPI-Wrapper für Delphi

  Alt 12. Feb 2011, 12:29
Danke nochmal! Ich werde es heute Abend mal ausprobieren.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#7

AW: WinAPI-Wrapper für Delphi

  Alt 12. Feb 2011, 18:06
Hallo,

Delphi IST ein WinAPI-Wrapper. Entweder benutze ich Win32 direkt oder die entsprechenden Funktionen/Komponenten von Delphi, wozu noch ein API mit der gleichen Funktion?

MFC ist auch nur ein anderer WinAPI-Wrapper. Wenn du es schöner findest, benutze es halt.

Gruss Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#8

AW: WinAPI-Wrapper für Delphi

  Alt 12. Feb 2011, 19:10
Delphi IST ein WinAPI-Wrapper. Entweder benutze ich Win32 direkt oder die entsprechenden Funktionen/Komponenten von Delphi, wozu noch ein API mit der gleichen Funktion?
Teile der VCL sind Wrapper für diverse Win32-Funktionen. Aber daß ein einfaches Programm schonmal mindestens 300 KiB auf die Waage bringt war und ist immer wieder Ansporn andere Alternativen zu suchen oder zu kreieren.

MFC ist auch nur ein anderer WinAPI-Wrapper. Wenn du es schöner findest, benutze es halt.
In Delphi? Das will ich sehen

Wenn er es ohnehin schlank will, müßte er schon auf ATL+WTL ausweichen. Denn auch MFC kommt schwergewichtig daher (ähnlich wie die VCL in diesem Sinn).
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: WinAPI-Wrapper für Delphi

  Alt 12. Feb 2011, 19:15
Zitat:
Delphi IST ein WinAPI-Wrapper. Entweder benutze ich Win32 direkt oder die entsprechenden Funktionen/Komponenten von Delphi, wozu noch ein API mit der gleichen Funktion?
Korrekt
Sinn macht das nur in Sprachen wie VB
Da hier noch alle API's von Hand eingefügt werden müssen.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: WinAPI-Wrapper für Delphi

  Alt 12. Feb 2011, 19:18
Beim .net merkt das nur keiner, weil viele das ganze .Net-Framework vergessen, welches im Hintergrund nötig ist.

PS: Man könnte es ja mal mit Runtime-Libraries versuchen ... da ist die EXE auch recht klein.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:14 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