• Ich habe mich immer nach dem Unterschied gefragt. Darum habe ich kurz in den Sourcen nachgeschaut. Die Makros ChunkOf(), HandleOf() und HandleToOptr() scheinen obsolete / deprecated zu sein ?!?

    Code
    /* The following macros are obsolete. */
    #define ChunkOf(optr)           OptrToChunk(optr)
    #define HandleOf(optr)          OptrToHandle(optr)
    #define HandleToOptr(han)       ConstructOptr(han,NullChunk)

    Habe erst kürzlich auf HandleOf() gewechselt, nun einfach wieder alles zurück?

  • Zumindest ist das in Quelltext im Kommentar so vorhanden. Ich denke, da bin ich nicht der Einzige, der sich nun fragt, was man machen soll...

    Hast Du irgendein Schema nachdem du auswählst, welche Variante Du verwendest?

    Ein Vereinheitlichung wäre von mir her gesehen trotzdem wünschenswert. Einfach nur, dass ein einfacher Programmierer wie ich es einfacher hat... Sowas könnte ja gut durch ein Suchen / Erstzen bereinigt werden. Aber das ist schon wieder Zukunftsmusik (oder Krach ;-))

  • Es gibt Macros, die den Code lesbarer/wartbarer machen. Diese Macros würde ich immer benutzen, z.B. die Macros für die Instrumentennamen oder Marcus‘ Macro für Messageboxen.

    Und dann gibt es Macros für „schreibfaule Programmierer“. Das ChunkOf ist z.B. kürzer als OptrToChunk. Bei Letzterem ist dafür klarer zu erkennen, was wohin „konvertiert“ wird. Daher würde ich diese Macros vermeiden. (Ist natürlich Geschmacksache. ;) )

    Die Frage wäre, woher die Macros überhaupt stammen. Sind sie eventuell noch Überbleibsel von Geos 1.x oder dem einstigen Sun-SDK, wo die Funktionen ggf. noch anders hießen? Das würde das „obsolet“ erklären. Auf jeden Fall: Wenn „obsolet“ dran steht, besteht immer die Gefahr, dass sie in einer der nächsten Versionen entfernt werden. Daher würde ich sie für neue Projekte nicht mehr nutzen.

    There are two rules in life:
    1. Never give out all of the information.

  • Ich gehöre da zur Rubrik der schreibfaulen. :)

    Wenn „obsolet“ dran steht, besteht immer die Gefahr, dass sie in einer der nächsten Versionen entfernt werden. Daher würde ich sie für neue Projekte nicht mehr nutzen.

    Die Gefahr sehe ich nicht. Die Macros sind da und eins der beiden zu entfernen kann immer bedeuten, dass das System oder irgend ein Programm nicht mehr compilert. obsolete würde ich hier mit überflüssig übersetzen, was ja m.E. auch zutrifft.

    Aber ich gebe Jörg auch recht: HandleOf() auf einen Pointer in einen gelockten Speicherblock angewandt - was der Compiler wohl schlucken würde - liefert nicht das Handle des MemBlocks sondern das Segment des Pointers. OptrToHande() ist da eindeutiger.

    Ich denke, das SDK ist so komplex und es gibt immer so viele - gleichwertige - Möglichkeiten, dass der verständliche Wunsch eines Anfängers nach einem einheitlichen Schema nicht erfüllbar ist. Als Anfänger fand ich das auch doof :)

    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.