AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Was ist der unterschied zwischen GetModuleHandle,GetModuleHa
Thema durchsuchen
Ansicht
Themen-Optionen

Was ist der unterschied zwischen GetModuleHandle,GetModuleHa

Ein Thema von Arnulf · begonnen am 21. Jul 2005 · letzter Beitrag vom 22. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#1

Was ist der unterschied zwischen GetModuleHandle,GetModuleHa

  Alt 21. Jul 2005, 15:48
Hallo
In delphi selbst finde ich keine hilfe zu den functionen.
Auch msdn gibt keine Auskunft was das eigentlich ist.
Kann mir jemand sagen worin der unterschied zwischen den verschiedenen GetModuleHandle's liegt?

function GetModuleHandle; external kernel32 name 'GetModuleHandleA';
function GetModuleHandleA; external kernel32 name 'GetModuleHandleA';
function GetModuleHandleW; external kernel32 name 'GetModuleHandleW';

Danke
Arnulf
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#2

Re: Was ist der unterschied zwischen GetModuleHandle,GetModu

  Alt 21. Jul 2005, 15:52
kurz gesagt

das A steht für ANSI (singleBYTE) - ein zeichen belegt 1 byte im speicher
das W steht für WIDE (multiBYTE) - ein zeichen belegt 2 byte im speicher - für sonderzeichen und son krams die zeichentabelle kann daher bis zu 65536 zeichen aufnehmen

ohne alles ist auch A(NSI) - weil das eben das meistverbreitetste ist -
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Was ist der unterschied zwischen GetModuleHandle,GetModu

  Alt 21. Jul 2005, 16:03
Unter NT ff. Gibt es für jede Funktion, die eine Zeichenkette zurückliefert, immer noch eine UniCode (WideString) Version. Wobei die Ansi Versionen leer sind und nur die UniCode Versionen aufrufen. Dies hat kompatibilitäts Gründe.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Was ist der unterschied zwischen GetModuleHandle,GetModu

  Alt 21. Jul 2005, 18:06
Luckies Kommentar leicht korrigiert:
Unter NT ff. Gibt es für fast jede Funktion, die eine Zeichenkette als Parameter entgegennimmt oder zurückliefert, immer noch eine UniCode (WideString) Version.
... Gegenbeispiel: GetProcAddress()

Zitat von Luckie:
Wobei die Ansi Versionen leer sind und nur die UniCode Versionen aufrufen. Dies hat kompatibilitäts Gründe.
Irrtum. A.) man kann kaum von leer sprechen, denn sie tun was und B.) rufen sie oft garnicht eine Unicode-Version sondern "Zwischenfunktionen" auf. Das kann man am besten mit einem Disassembler oder Debugger und den Symbolen von MS sehen.

Übrigens, @Arnulf, es gibt mehrere Unicode-Standards, daher muß man eingrenzen, daß wir bei Windows NT ff. nur vom 16bittigen Unicode-Zeichensatz reden. Es gibt noch solche mit Variabler Zeichenbreite und solche mit mehr als 16bit (namentlich mit 32bit).
Unicode ermöglicht es im Gegensatz zu dem Codepagemodell, welches mit ANSI (und den Geschwisterchen) verfolgt wurde, mehrere verschiedene Zeichensätze (zB Hebräisch, Chinesisch und Russisch) zusammen darzustellen. Bei ANSI ist immer nur eine dieser Codeseiten aktiv!

Unter C/C++ werden die Funktionen je nach Präprozessorschalter als A oder W eingebunden. Der Name selbst wird vom Präprozessor als Makro ohne A/W umdefiniert. So wird es sehr leicht ein Programm sowohl als Unicode- als auch als Ansi-Version zu kompilieren.
  Mit Zitat antworten Zitat
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#5

Re: Was ist der unterschied zwischen GetModuleHandle,GetModu

  Alt 22. Jul 2005, 12:18
Also echt - ich beschäftige mich so viel mit Systemprogrammierung derzeit - woher lernt man das alles?
Ich hab mal versucht das online psdk von microsoft zu studieren, aber davon war ich etwas erschlagen.

Gibt es ein gutes Buch? wo man das nachlesen kann. - Ich mein eines das etwas einfacher gestrickt ist, programmieren ist hald nur mein Hobby .

Wenn geht auf deutsch - vielleicht auch das psdk auf deutsch - nicht, daß ich nicht englisch könnte, aber Fachliteratur ist hald deutsch einfacher, vor allem wenn man nicht wirklich vom fach ist.
Wichtig für mich wäre auch Speicherverwaltung von Windows.
Ich hab versucht das auf unserer Technischen Uni zu bekommen, aber die hatten nur Api Bücher.

Danke für die schnellen Antworten!
Arnulf
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Was ist der unterschied zwischen GetModuleHandle,GetModu

  Alt 22. Jul 2005, 12:32
Zitat von Olli:
Übrigens, @Arnulf, es gibt mehrere Unicode-Standards, daher muß man eingrenzen, daß wir bei Windows NT ff. nur vom 16bittigen Unicode-Zeichensatz reden. Es gibt noch solche mit Variabler Zeichenbreite und solche mit mehr als 16bit (namentlich mit 32bit).
Auch nicht ganz richtig. NT unterstützt nur 16-Bit Unicode. Ab 2000 wird 32-Bit-Unicode unterstützt, wobei die Text für die Übergabe an die Win32-API UTF16-Codiert sein müssen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#7

Re: Was ist der unterschied zwischen GetModuleHandle,GetModu

  Alt 22. Jul 2005, 12:51
Zitat von Bernhard Geyer:
Auch nicht ganz richtig. NT unterstützt nur 16-Bit Unicode. Ab 2000 wird 32-Bit-Unicode unterstützt, wobei die Text für die Übergabe an die Win32-API UTF16-Codiert sein müssen.
Aha. Wußte ich nicht. Wo kann man das nachlesen. Mir war so, als sei intern alles noch 16bit (sind die UNICODE_STRINGs im K-Mode und der UM-Native-API ja auch).
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Was ist der unterschied zwischen GetModuleHandle,GetModu

  Alt 22. Jul 2005, 13:00
Zitat von Arnulf:
Also echt - ich beschäftige mich so viel mit Systemprogrammierung derzeit - woher lernt man das alles?
Lesen, lesen, lesen. Hier im Forum (Da besonders die beiträge von Olli, Nico, Hagen und Robert Marquardt.), Bücher:
http://www.amazon.de/exec/obidos/ASIN/3860636154/delphipraxis-21

http://www.amazon.de/exec/obidos/ASIN/0201604426/delphipraxis-21

OpenSource Programm studieren, selber viel schreiben, ...

Zitat:
Wenn geht auf deutsch - vielleicht auch das psdk auf deutsch - nicht, daß ich nicht englisch könnte, aber Fachliteratur ist hald deutsch einfacher, vor allem wenn man nicht wirklich vom fach ist.
Diese Fachbücher wirst du fast nur auf englisch bekommen, das PSDK sowieso.

Zitat:
Wichtig für mich wäre auch Speicherverwaltung von Windows.
Ich hab versucht das auf unserer Technischen Uni zu bekommen, aber die hatten nur Api Bücher.
Sie Bücher oben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#9

Re: Was ist der unterschied zwischen GetModuleHandle,GetModu

  Alt 22. Jul 2005, 18:34
Danke ich werd mal schauen wo ich die Bücher auftreiben kann. - abgesehen von Amazon.

Trotzdem möchte ich noch ein paar Fragen stellen - vor allem zur uall collection - die dinge die ich noch nicht verstanden hab und das betrifft vor allem Speicher Verwaltung.
Werde dazu nen neuen Thread auf machen - muß mir nur einen sinnvollen Titel überlegen .
Arnulf
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Was ist der unterschied zwischen GetModuleHandle,GetModu

  Alt 22. Jul 2005, 18:36
Warum nicht Amazon? Ansonsten solltest du sie in jeder Buchhandlung bestellen können. Die englischen dürften aber sehr lange dauern.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 17:55 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