|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
User_User JLI'ler
Anmeldedatum: 05.08.2004 Beiträge: 137
Medaillen: Keine
|
Verfasst am: 26.08.2009, 15:43 Titel: Win32-API unter 64-Bit-Prozessoren |
|
|
Da die Spieleprogrammierung mir zu mühevoll ist, interessiere ich mich für Computersicherheit. Dabei las ich oft, dass man sich mit der Win32-API auskennen sollte.
Ich verwende C++. Will man etwas machen, dass nicht durch das MFC- oder .NET-Framework abgedeckt wird, muss man die Win32-API verwenden. Wie sieht das unter 64-Bit-Prozessoren und Multiprozessoren aus? Ändert sich etwas wesentliches im Bezug zur Win32-API? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 26.08.2009, 20:55 Titel: |
|
|
Howdi,
Auszug aus der Wikipedia:
Zitat: | Win32 for 64-bit Windows, previously known as Win64, is the variant of the API implemented on 64-bit platforms of the Windows architecture (currently AMD64 and IA64.)[18][19][20] There are no new user-mode functions specific to the 64-bit platform, so both 32-bit and 64-bit versions of an application can be still compiled from a single codebase, although some older APIs have been deprecated. All memory pointers are 64-bit by default (the LLP64 model), so the source code has to be checked for compatibility with 64-bit pointer arithmetic and rewritten as necessary. |
Deckt sich auch mit dem was ich darüber weiss, Pointer sind zu beachten das wars, evtl noch der Hinweis das HANDLE Parameter nur die ersten 32Bit verwenden (wie unter x86 also) aber das wars auch schon. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 27.08.2009, 05:29 Titel: |
|
|
Prinzipiell werden die selben Funktionen (die selben Funktionsnamen) verwendet, wie in Win32. Pointer sind statt 32-Bit 64 Bit breit. Dies hat auswirkungen auf alle möglichen Strukturen, welche dadruch andere größen haben und ggf. auch andere Offsets.
Dies bedeutet, dass man Pointerarithmetik nicht nutzen sollte - oder mehrfach überprüfen.
An sonsten kann man den selben Code per Compilerschalter als 32 und als 64-Bit Programm übersetzen lassen. Es müssen lediglich andere Bibliotheken gelinkt werden.
PS.: Es ist nicht möglich, einen "Mixmodus" zu fahren und 32-Bit-Bibliotheken in einem 64-Bit-Programm zu nutzen. Dies ist besonders für Fremdbibliotheken wichtig, wo man den Code nicht hat und es keine 64-Bit-Varianten gibt. _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
User_User JLI'ler
Anmeldedatum: 05.08.2004 Beiträge: 137
Medaillen: Keine
|
Verfasst am: 28.08.2009, 11:11 Titel: |
|
|
Danke für die schnelle und kompetente Beantwortung! |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|