Beiträge: 396
Themen: 8
Registriert seit: Sep 2013
Bewertung:
0
Ich verstehe nicht was der HelpIndex Update mit dem Amiblitz Compiler zu tun hat, das ist eine reine IDE Sache. Ich habe natürlich auch den HelpIndex erneuert, aber das Problem liegt in der Lib. Ich speichere AIDE in ab3 format, d.h. Token IDs etc. sind egal, da zur Kompilezeit erzeugt.
Bitte meine Kritik nicht falsch verstehen, ich will nur konstruktiv dazu sagen was nicht gut ist und zu Missverständnissen führen kann. Der einzige Grund warum Bernd den Befehl nicht ganz rausgeschmissen hat ist kompatibelität zu BB1 Sourcen (gibt das überhaupt?). Wie gesagt, seit BB2 ist der Befehl überflüssig und "Null" ist ein denkbar schlcht gewählter Name gewesen.
Beiträge: 666
Themen: 77
Registriert seit: Oct 2013
Bewertung:
0
Genau deswegen funktionierten auch ältere Sourcen nicht mehr wie z.B alle Muiexamples....
Und genau deswegen gibt es hier diesen Faden. Ich bin durch Zufall darüber gestolpert weil ich mich
mal bei MUI näher umschauen wollte da es dort nun V3.9 neu gibt...
Beiträge: 396
Themen: 8
Registriert seit: Sep 2013
Bewertung:
0
Hatte das vergessen. Dann wäre eigentlich die Bezeichnung "GetAddrOfGlobalCopyOfStr", in Java würde man das "GetGlobalRef" bezeichnen, oder eben "GetGlobalStrAddr". Das Null muss man eigentlich nicht erwähnen, da wie schon gesagt seit BB2 alle Strings null-terminiert sind.
Beiträge: 289
Themen: 10
Registriert seit: Oct 2013
Bewertung:
0
So ich habe den Namen auf 'GetGlobalStrAddr' geändert.
Ebenso habe ich NULL jetzt in den ElmoreSysLib angepasst das es keine Argumente mehr verlangt und 0 in D0 zurück gibt wenn die Compilerversion zu alt ist (vor Revision 487).
Beiträge: 396
Themen: 8
Registriert seit: Sep 2013
Bewertung:
0
@Bernd
Nicht ganz. Die BB2 Strings sind zwar 0-terminiert, aber die Lebenszeit ist nicht global. Bei manchen OS Calls wird der String übernommen und es wird erwartet, dass er bis zum Ende des Programms lebt.
Deshalb haben wir das in den etwas sperrigen Namen GetGlobalStrAddr() umbenannt, weil es genau das ist was es tut und man das nicht inflationär verwenden sollte. "Null()" ist ziemlich irreführend, in den meisten Programmiersprachen steht Null für einen Null Pointer oder leeres Object.
Beiträge: 67
Themen: 5
Registriert seit: Jun 2014
Bewertung:
0
achso ja, bei screen window namen oder so, muss das global sein. aber wenn man eine unterfunktion macht, die windows öffnen kann, dann würde der globale string auch überschrieben werden, beim nächsten window öffnen. am besten ist es wenn man den namen in einer struktur speichert in der dann per nummer zugegriffen wird