WinAPI - A hinten dran? @12?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

das wurgel

Betreff: WinAPI - A hinten dran? @12?

BeitragMo, Mai 31, 2010 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Ich würde gerne wissen warum beim Deklarieren von WinAPI-Funktionen manchmal ein A hinten dran ist und machmal nicht, aber vorallem was dieses "@12" hier ganz am Ende bedeutet:
Code: [AUSKLAPPEN]
Function SetWindowLong(hwnd:Int,nIndex:Int,dwNewLong:Int) = "SetWindowLongA@12"


Danke schnonmal.
1 ist ungefähr 3

DaysShadow

BeitragMo, Mai 31, 2010 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Die 12 ist die Gesamtzahl an Bytes die der Funktion als Parameter übergeben werden.
In deinem Falle 3*4 Byte.

Das A weiß ich grad nicht mehr...

MfG DaysShadow
Blessed is the mind too small for doubt

mpmxyz

BeitragMo, Mai 31, 2010 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
API hat Folgendes geschrieben:
SetWindowLongW (Unicode) and SetWindowLongA (ANSI)

Mir macht zwar die Unterscheidung zwischen ANSI und Unicode hier keinen Sinn, aber so steht es dort geschrieben.
Das "@12" gibt an, dass das die Funktion mit insgesamt 12 Bytes langen Parametern nutzen soll.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

FireballFlame

BeitragMo, Mai 31, 2010 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Das A gehört mit zum Funktionsnamen und steht für ANSI.

EDIT: nvm, s.o.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

das wurgel

BeitragMo, Mai 31, 2010 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah okay.
Und warum, wird das @ manchmal wegelassen, obwohl die Funktion Parameter besitzt?

edit
Achja und nochwas: Die sind doch alle auf verschiedene DLLs verteilt. Woher weiß BlitzMax, welche DLL gemeint ist?
1 ist ungefähr 3

mpmxyz

BeitragMo, Mai 31, 2010 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Diese Angabe ist auf alle Fälle nicht nötig, wenn die Funktion eindeutig bzw. nicht überladen ist.
Ich denke mal, dass BlitzMax sich die DLL-Funktionen sucht - immerhin werden sie da drin ja aufgelistet.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Silver_Knee

BeitragMo, Mai 31, 2010 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
im Prinzip ist das alles nur ein name der funktion der wird sozusagen vom compiler in kooperation mit dem programmierer gesetzt. da gibt es eben programiersprachen, da wird ein @1234 oder der PRogrammierer hängt von sich aus an die ASCII version des befehls ein A oder ähnliches gemacht,.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group