Seite 1 von 1

doppelte Funktionsnamen

Verfasst: Fr, 01. Feb 2019 19:50
von Manfred
boh glaubse,
ich könnte die Wände hochlaufen :banghead: . Ich hatte hier schonmal von einem Projekt erzählt, welches ich seiner Zeit übernommen habe. In dem Projekt wurde/wird sehr viel in Konstante gepackt. Nicht nur Werte, sondern auch eigene Funktionen. Das war jetzt mal wieder so ein grandioser Fall, wo ich gar nicht so viel :spam1: :spam2: kann, wie ich :pukeleft: möchte.
Ich bin dabei die ganzen Konstantenfunktionen aufzulösen, weil es turboschwierig ist diese zu debuggen. Es gab auch diesmal eine CToN(). Diese habe ich dann in eine eigene Funktion umgebaut. So weit so gut. Nichts weiter dabei gedacht, es gab keine Meldung vom Compiler, das irgendwas nicht stimmen könnte. Irgendwann kam dann der Hinweis vom Anwender, das Ergebnisse nicht richtig sind. ich also ran den Speck und gesucht.......
Nichts gefunden. Irgendwann kam ich dann an die Stelle, wo die Funktion aufgerufen wird. Natürlich auch wieder total in AEval und Eval usw verschachtelt, das man Hörner kriegen könnte. Irgendwann habe ich mich dann gewundert, das trotz Breakpoint das Programm in der Funktion nicht stoppt. Die ganzen AEval und Evals zerpflückt und Schritt für Schritt gesucht. Die Funktion ausgremt.... Es gab keine Fehlermeldung beim Compilieren. Da wurde ich verdammt stutzig. Nachdem ich schon kurz vor dem Prager Fenstersturz stand, habe ich in der Workbenchhilfe nach der Funktion gesucht. Keine Hinweise dazu vorhanden. Also die alten Tools Bücher aus Clipperzeiten herausgekramt und da stand sie drin. Allerdings mit anderen Parametern, als sie von meinem Vorgänger gebaut wurde. Tolle Wurst.
Lange Rede kurzer Sinn, der Compiler compiliert sowas, sagt keinen Mucks und nimmt treu die aus den Tools. Und der Entwickler steht da wie ein Depp und merkt es nicht.
Das jetzt nur mal so zur Info, damit es keinem von euch auch so ergeht wie mir.
Naja, zumindest ist das Wochenende jetzt gerettet. Muß also nicht mehr übermäßig viel essen.....

Re: doppelte Funktionsnamen

Verfasst: Fr, 01. Feb 2019 21:30
von Werner_Bayern
Servus Manfred,

damit aus dem Monolog ein Dialog wird :D
Ich verstehe es nicht. CtoN() steht ja in der Hilfe von Xbase++, ist also in der Runtime enthalten. Du hattest aber eine gleichlautende Funktion ohne static-Deklaration in Deinem Projekt? Trotzdem wurde die aus den Tools genommen?

Darf nicht sein...

Re: doppelte Funktionsnamen

Verfasst: Fr, 01. Feb 2019 22:40
von Manfred
Hi Werner
Entweder brauche eine neue Brille oder.....
Ja einfache function . Habe schon bei Alaska nachgefragt.

Re: doppelte Funktionsnamen

Verfasst: Sa, 02. Feb 2019 13:28
von Werner_Bayern
Ich hab ja schon eine 8)
Bin gespannt, was da los ist...

Re: doppelte Funktionsnamen

Verfasst: Sa, 02. Feb 2019 13:33
von Manfred
Hi Werner,
wo hast Du denn in der normalen Workbenchhilfe was zu CToN() gefunden? Wenn man das eingibt, erscheint erstmal nichts.

Re: doppelte Funktionsnamen

Verfasst: Sa, 02. Feb 2019 14:45
von Werner_Bayern
Unbenannt.PNG
Unbenannt.PNG (30.58 KiB) 8297 mal betrachtet

Re: doppelte Funktionsnamen

Verfasst: Sa, 02. Feb 2019 14:54
von Manfred
interessant. Ich suche immer unter xbase++ Sprache. Da steht das gar nicht drin. Muß mich mal daran gewöhnen den Punkt Hilfe anzeigen zu nehmen.

Re: doppelte Funktionsnamen

Verfasst: Sa, 02. Feb 2019 15:03
von Jan
Oder den Funktionsaufruf in den Code-Editor schreiben und F1 drücken. Dann werden alle Hilfedateien danach durchsucht.

Aber mal ehrlich: Was Alaska da mit der Hilfe gemacht hat ist eine Katastrophe. Erstens wird vieles nicht mehr gefunden - tippt man in den Code z. B. GATHER, findet F1 das nie im Leben. Die Hilfe wird nicht mal geöffnet. Und dann, wenn man den Funktionsaufruf nicht exakt kennt, muß man ziemlich genau wissen, was man da sucht. Sonst bekomt man das nicht hin. Wie oft hab ich die Hilfe zu einer Methode gesucht, und werd dann auf die falsche Klasse geführt. Aber richtig übel wird das, wenn der Cdoe im Netz liegt. Dann dauert der Aufruf der Hilfe bei F1 eine Ewigkeit. Dazwischen kann man sehr gemächlich beobachten, wie nach und nach verschiedene Fenster markiert werden, mehrere Icons in der Taskliste auftauchen und wieder verschwinden.

Ich hab mir die Mühe gemacht eine sehr, sehr lange Liste über teilweise wirklich üble und arbeitshemmende Macken in der Workbench an Alaska zusammen zustellen. Da kam an einer Stelle ein absolutes Unverständnis, an der nächsten eiN Wow. Man werde sich das mal näher ansehen. Passiert ist - genau Null. Ich mag die Workbench, aber Alaska vergrault mir das immer wieder.

Jan

Re: doppelte Funktionsnamen

Verfasst: Mo, 04. Feb 2019 15:19
von Manfred
hier die Antwort.
es ist möglich aus DLLs exportierte Funktionen zu "überladen", siehe zB. die Redefinition von AppSys() oder DbeSys(). Diese Abhängigkeiten werden vom Linker aufgelöst. Eine Implementierung im gleichen Modul sollte eigentlich verwendet werden. Wird eine solche nicht gefunden, hängt es von der Linkreihenfolge ab, welche Implementierung verwendet wird. Steckt Deine Implementierung z.B. in einer eigenen DLL, verhält sie sich wettbewerblich zu der in der jeweiligen Tools-DLL.

Re: doppelte Funktionsnamen

Verfasst: Mo, 04. Feb 2019 15:39
von brandelh
wenn ich eine Funktion sicher überladen will, muss die in die EXE !

Re: doppelte Funktionsnamen

Verfasst: Mi, 06. Feb 2019 17:52
von Werner_Bayern
Servus Manfred,

und, wo war Deine Funktion dann letztendlich?

Re: doppelte Funktionsnamen

Verfasst: Mi, 06. Feb 2019 18:03
von Manfred
in einer Zusatz DLL