Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26915, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3326, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 312, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7643, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 20, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 23, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 58, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 146, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 71, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50944, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09.12.2009, 15:51   #1 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard Wie funktioniert API Programmierung?

Erklärt an der API MoveFile:

Wie erhält man die zu der API gehörenden DLL :
Wir schauen uns dazu mal die API Beschreibung auf der Microsoft Seite an. Ganz unten steht folgendes:
Zitat:
Requirements

Minimum supported client Windows 2000 Professional
Minimum supported server Windows 2000 Server
Header WinBase.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll
Unicode and ANSI names MoveFileW (Unicode) and MoveFileA (ANSI)
Da steht also die DLL in der sich die Funktion MoveFile befindet.

Wie erhälte ich den genauen Funktionsnamen in der DLL:
Bei uns hier in Deutschland gibt es das Alphabeth. Aus den dort enthaltenen Buchstaben (es sind so um die 26) kann man eigentlich jedes Wort und jeden Satz der Deutschen Sprache bilden.
In Japan sieht das ganz anders aus, da gibt es viel mehr Schriftzeichen, aus denen die einzelnen Worte gebildet werden. Es gibt bei den meisten APIs, die in irgendeiner Form mit Textausdrücken umgehen (bei MoveFile ist das zum Beispiel der Name des Quell- und Zielordners), deshalb öft zwei Versionen - hier
- MoveFileA -> kann mit dem euopäschien (kurzen) Zeichensatz umgehen
- MoveFileW -> kann mit einem erweiterten Zeichensatz umgehen, wie zum Beispiel den japanischen Schriftzeichen.
Ich habe hier MoveFileA gewählt - allgemein für Nicht-Asiaten die erste Wahl.
Zitat:
Requirements

Minimum supported client Windows 2000 Professional
Minimum supported server Windows 2000 Server
Header WinBase.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll
Unicode and ANSI names MoveFileW (Unicode) and MoveFileA (ANSI)
Wie erhalte ich die Parameter, mit der die Funktion aufgerufen wird:
Dafür ist folgender Abschnitt wichtig:
Zitat:
Syntax

C++

BOOL WINAPI MoveFile(
__in LPCTSTR lpExistingFileName,
__in LPCTSTR lpNewFileName);
Wie man hier sieht, hat die Funktion zwei Parameter. __in bedeuted, es sind Parameter für die Eingabe - man muss also vorher was emtsprechendes in die Parameter packen, damit die Funktion erfolgreich was tut. Es könnte dort auch __out stehen, dann packt die Funktion dort selbst was hin, was man später auslesen kann.
Jetzt schauen wir uns mal das LPCTSTR etwas genauer an. STR wird dir bekannt vorkommen - da gibt es doch die Funktion Str$ aus Profan! STR ist also ein String und LP beudet nichts anderes als eine Adresse. Es muss bei beiden Parametern also die Adresse eines Strings übermittelt werden - einmal die Adresse des Quellordners (der Quelldatei) und einmal die Adresse des Zielordners (der Zieldatei).



Folgende Sachen könnten dort unter anderem bei anderen Funktionen noch stehen (hier das wichtigste für den Anfang):
  • DWORD = Eine 4 Byte große Zahl (Zahl&)
  • WORD = Eine 2 Byte große Zahl
  • Byte = 0 oder 1 -> eine 1 Byte große Zahl
Wo finde ich Funktion, die mich interessieren könnten:
Es gibt da einen netten Download, der die wichtigsten Funktionen etwas geordnet enthält (win32.hlp). Das ganze ist schon ziemlich veraltet, zum ersten Nachschlagen reicht es aber noch.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT

Geändert von AHT (09.12.2009 um 19:06 Uhr)
AHT ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 12.06.2010, 16:18   #2 (Direktlink)
War schon mal da
 
Registriert seit: 24.05.2009
Beiträge: 46
Standard Wie funktioniert API Programmierung

Wie erhalte ich die zu der API gehörende DLL?

Der Link funktioniert - am Beispiel MoveFile.

Gibt es einen Link wo ich eine Übersicht finde um zu einem Funktionsnamen die zugehörige DLL zu finden? Ich habe vergeblich gesucht.
Die Möglichkeit der Win32.hlp kenne ich, aber ich sollte die Information auch auf der microsoft Seite finden können.

Gruß
Gerhard
Gerhard Putschalka ist offline   Mit Zitat antworten
Alt 12.06.2010, 16:25   #3 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Hast du einen Funktionsnamen, hilft in der Regel Google - hier mal CreateMutex, suche nachte CreateMutex und MSDN:

CreateMutex msdn - Google-Suche

Gans oben findet man dann die MSDN Seite mit der englischen Erklärung.
Ganz unten steht dort auf der Seite:
Zitat:
DLL Kernel32.dll
Die Funktion kommt also aus der Kernel32.DLL.

Arbeitet man eine Zeitlang mit der API-Programmierung, bekommt man alleine vom Namen der Funktion her schon ein Gespür dafür, für was die gut ist.
Ich habe mir damals Tasks and Token geschrieben - mit dem Tool kann man unter anderem die einzelnen DLLs auf Exportfunktionen hin untersuchen (wahlweise mit Name oder Ordnungszahl).
Ich mache ja ab und zu auch was mit undokumentierten Sachen - ich schaue dann auch einfach bei Google nach, was ich über diese Funktion finde und prüfe auf meinen Rechnern, ab welcher Windowsversion es diese API überhaupt gibt. Kennt man sich da aus, kann man da eine ganze Menge zaubern.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT

Geändert von AHT (12.06.2010 um 16:33 Uhr)
AHT ist offline   Mit Zitat antworten
Alt 12.06.2010, 17:02   #4 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Standard

Gut erklärt. MSDN hilft da immer.
__________________
XProfan-Profi (XProfan X2+XPIA)
http://jacdelad.bplaced.net
http://jacdelad.square7.ch
Jac de Lad ist offline   Mit Zitat antworten
Alt 12.06.2010, 17:05   #5 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Soweit es dokumentiert ist, ja - amsonsten muss man auf anderen Seiten suchen.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 13.06.2010, 08:21   #6 (Direktlink)
Ist öfter hier
 
Registriert seit: 12.04.2009
Beiträge: 52
Standard

Habs früher mal in etwa so gelernt :

Die 3 wichtigsten DLLs in Windows -> Kernel32, User32, GDI32
Kernel32 :
- dort sind alle Systeminformationen und Funktionen
(Arbeitsspeicher, Dateien usw.)
GDI32 :
- Alle Funktionen u. Informationen zum Zeichnen
USER32 :
- Alles, was mit Controls zusammen hängt (Fenster, Buttons,
Listboxen, Editfelder.....)

Wenn man das im Hinterkopf behält, kann man schon etliche
Funktionen den jeweiligen DLLs zuordnen und braucht nur noch
nach den jeweiligen Parametern zu forschen.
H.Brill ist offline   Mit Zitat antworten
Alt 13.06.2010, 10:12   #7 (Direktlink)
War schon mal da
 
Registriert seit: 24.05.2009
Beiträge: 46
Standard

Danke, es funktioniert sehr gut.

Mfg
Gerhard
Gerhard Putschalka ist offline   Mit Zitat antworten
Alt 13.06.2010, 10:56   #8 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.079
Standard

Ja, langsam kommt auch bei mir System in die Sache.
Nochmals vielen Dank!
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3
p. specht ist offline   Mit Zitat antworten
Alt 13.06.2010, 17:23   #9 (Direktlink)
War schon mal da
 
Registriert seit: 24.05.2009
Beiträge: 46
Standard

Ab morgen sollte die neue Version (Datum 13.6.2010) auf meiner Seite sein.
Mfg
Gerhard.
Gerhard Putschalka ist offline   Mit Zitat antworten
Alt 06.07.2011, 15:23   #10 (Direktlink)
AHT
Super-Moderator
 
Registriert seit: 15.02.2009
Beiträge: 10.786
Standard

Genial finde ich auch die API Kurse von Uwe Pascal Niemeyer: API Grundkurse von Uwe Niemeier
Wer das durchgearbeitet hat, kann API programmieren. Die Sachen sind gut und einfach erklärt.
__________________
______________

Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert!

Mfg

AHT
AHT ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Programmierung in C / C# La(r)Go C/C++, Visual C++, Visual C++.NET 3 10.07.2009 21:35
Programmierung Luca PHP/MySQL 3 21.04.2007 20:10
C++ Programmierung Jordan C/C++, Visual C++, Visual C++.NET 0 14.10.2005 22:51
programmierung I'm Only A Guest Allgemein 2 11.06.2005 11:21
C++ Programmierung Olm Software - Allgemein 2 21.01.2003 03:05



Alle Zeitangaben in WEZ +2. Es ist jetzt 06:06 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2