003
28.08.2007, 10:04 Uhr
gorgoyle
|
ich hab eine source die in C geschrieben ist, die eine virtuelle maschine bereitstellt. diese VM stellt "built-in Functions" zur Verfügung. Diese Functions sind ebend als C-Functions realisiert und müssen registriert werden. Als ich die erste Klasse schrieb, die nur eine zu registrierende Funktion enthielt, meckerte der Compiler. Durch Probieren hab ich nicht geschaft, eine Methode wie eine Funktion zu übergeben (also einen Pointer darauf). Darum meine Frage ob es Unterschiede gibt.
Das der Code nicht funktioniert, ohne auf Methoden-Zeiger abgestimmt zu sein, kann ich mir vorstellen, aber als was für einen Typ muß ich den den Methoden-Zeiger deklarieren?
scho mal vielen dank für die bisherigen Antworten..
*edit* Ich hab eine Klasse, die eine statische Methode zum registrieren der "built-in Function", nun eine Member-Method, vormals eine Funktion.
C++: |
stativ void myclass::register_func(someArgs,..., myBuiltinFunc,...,someFlags)
|
myBuiltinFunc war zuvor eine Funktion und nun ist es eine Methode. Ich hatte erwartet, daß beide vom Typ void* sind und deshalb der Compiler den Code akzeptiert, auch wenn er dann nicht funzt, weil "dort" keine Instanz zur Verfügung steht, an der man die Methode "anbinden" kann. Dieser Post wurde am 28.08.2007 um 10:10 Uhr von gorgoyle editiert. |