Da haste auch wieder wahr.#NULL hat geschrieben:Ob die Funktion aufgerufen wird, kann von der Laufzeit abhängen, bzw kann der Compiler nicht wissen.Code: Alles auswählen
If Random(1) : test() : EndIf

Da haste auch wieder wahr.#NULL hat geschrieben:Ob die Funktion aufgerufen wird, kann von der Laufzeit abhängen, bzw kann der Compiler nicht wissen.Code: Alles auswählen
If Random(1) : test() : EndIf
Das habe ich auch erst gedacht, aber dem ist eigentlich gerade nicht so.Imhotheb hat geschrieben:Da das so oder so ähnlich in der Hilfe steht, ist es vielleicht so gewollt?
Wie gesagt, ich habe bislang auch nicht weiter drüber nachgedacht und mein Hirn hat nach dem Lesen des Teils "...dass die Global oder Shared Befehle benutzt werden müssen" offenbar abgeschaltet, weil ja "klar war", dass Share nur innerhalb von Prozeduren benutzt werden kann und somit das Global da "wohl auch" benutzt werden kann, wenn es in der Hilfe in einem Atemzug erwähnt wird. Typischer Fall von Freud'scher Verleser/Versteher.Die PB-Hilfe zu List hat geschrieben:Die neuen verknüpften Listen sind immer lokal. Dies bedeutet, dass die Global oder Shared Befehle benutzt werden müssen, wenn eine im Haupt-Quellcode deklarierte Liste in Prozeduren verwendet werden soll.
Bei Verwendung vom Modulen bei DLL´s sollte man im Module Bereich eine Procedure InitModul() : Global, etc : EndProcedure : InitModule() programmieren.Imhotheb hat geschrieben:Ich meinte diesen Bereich aus der Hilfe:
"
Hinweise zur Erstellung von DLL's:
- Die Deklaration von Arrays, Listen bzw. Maps mittels Dim, NewList bzw. NewMap muss stets innerhalb der Prozedur AttachProcess erfolgen.
"
DIM, NEWLIST und NEWMAP sind auch außerhalb der AttachProcess definitiv erlaubt, in jeder Procedure! Die Zeile klingt danach, als wäre sie noch für die uralte Version geschrieben worden, wo die Arrays, Listen und Maps immer global waren. Das ist ja schon lange nicht mehr der Fall.- The declaration of arrays, lists or map with Dim, NewList or NewMap must always be done inside the procedure AttachProcess.
- Don't write program code outside procedures. The only exception is the declaration of variables or structures.
- DirectX initialization routines must not be written in the AttachProcess procedure.
Ist das gesichert?Weil bei einer DLL wird automatisch sämtlicher Code außerhalb von Proceduren eingesammelt und in die Attach-Procedure gesteckt.
How are DLLs correctly programmed? hat geschrieben:You can also declare list in procedure if needed, just not in the main code.