| Autor |
Nachricht |
taxidriver
Hält's aus hier
Beiträge: 2
|
Verfasst: Di 27.09.11 16:31
Hallo zusammen,
einige von euch kennen bestimmt die Funktion einen Methodenzeiger in Funktionszeiger umzuwandeln.
www.swissdelphicente...showcode.php?id=1671
Allerdings funktioniert das unter 64bit leider gar nicht mehr. Habe einiges rumprobiert und gelesen, aber ich bekomme es einfach nicht hin.
Die "Calling Conventions" haben sich unter 64bit geändert so das der alte Weg nicht mehr funktioniert. Bin aber nicht der Experte um zu verstehen was genau und wie die kleine Funktion umzubauen ist.
Kann mir einer vielleicht helfen oder hat bereits einer eine neue Lösung. Moderiert von Narses: Topic aus Windows API verschoben am Di 27.09.2011 um 17:14
|
| |
|
|
Werbung ausblenden? Dann registriere Dich kostenlos.
Weitere Gründe für eine Registrierung.
Werbung ausblenden? Dann registriere Dich kostenlos.
Weitere Gründe für eine Registrierung.
|
|
jaenicke
      
Beiträge: 15841
Erhaltene Danke: 741
XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
|
Verfasst: Di 27.09.11 17:09
Hallo und
Das wird so einfach eventuell gar nicht mehr gehen. Denn da hat sich schon eine Menge geändert. Klar ist: Ein Assemblerblock muss jetzt über die ganze Methode gehen ohne begin davor. Mischen mit Delphicode geht nicht.
Ich hatte hier mal eine Delphi-only Variante gepostet:
www.delphipraxis.net...tem-exception.html#5
Die Assemblerbefehle, die in den Speicherbereich geschrieben werden, müssten auf jeden Fall noch angepasst werden und ob es dann geht, keine Ahnung. Vielleicht schaue ich da einmal drüber, aber ich weiß noch nicht wann.
|
| |
|
|
taxidriver 
Hält's aus hier
Beiträge: 2
|
Verfasst: Di 27.09.11 18:13
|
| |
|
|
jaenicke
      
Beiträge: 15841
Erhaltene Danke: 741
XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
|
Verfasst: Di 27.09.11 18:19
Eins muss dir klar sein:
Selbst wenn du jetzt eine Lösung dafür findest / bekommst wirst du dann wieder basteln müssen, wenn du für andere Plattformen kompilieren möchtest. Sei es iOS, Android, oder auch irgendwann Windows 8 mit ARM.
Deshalb ist das so oder so keine gute Lösung.
Ich schaue aber dennoch mal, ob ich es bei mir zum Laufen bekomme.
|
| |
|
|
|