#pragma abfragen
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
#pragma abfragen
Hallo,
im Moment teste ich mit einer neuen externen Bibliothek, die wir zur Zeit noch in der Vorversion nutzen. Und je nachdem welche der beiden Versionen in per #pragma library einbinde müssen verschiedene andere Werte gesetzt werden.
Jetzt könnte ich mir natürlich eine Variable setzen, die beides parallel setzt. Aber gibt es nicht vielleicht die Möglichkeit abzufragen, welche der beiden dll ich eingebunden habe?
Jan
im Moment teste ich mit einer neuen externen Bibliothek, die wir zur Zeit noch in der Vorversion nutzen. Und je nachdem welche der beiden Versionen in per #pragma library einbinde müssen verschiedene andere Werte gesetzt werden.
Jetzt könnte ich mir natürlich eine Variable setzen, die beides parallel setzt. Aber gibt es nicht vielleicht die Möglichkeit abzufragen, welche der beiden dll ich eingebunden habe?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: #pragma abfragen
Du könntest parallel eine Konstante setzen, die im Code vorkommt:
oder
Im Code:
Eine wirklich gute 3rd-Party-Lib enthält aber eine Versionsfunktion, das macht dann alles einfacher.
Code: Alles auswählen
#pragma library("meinelib_version31.lib")
#define MEINELIB 31
Code: Alles auswählen
#pragma library("meinelib_version33.lib")
#define MEINELIB 33
Code: Alles auswählen
IF MEINELIB = 31 // das wäre dann nach dem PP "IF 31 = 33" oder "IF 33 = 33"
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: #pragma abfragen
Hallo Tom,
etwas anders als ich das mit der Abfrage gedacht hatte. Aber auch nicht das was ich suche. Ich dachte da eher an etwas wie: "Ist die meinedll12.dll oder die meinedll13.dll eingebunden?":
Das ist natürlich nur eine rein akademische Frage. Es gibt mindestens drei Wege, das anders zu regeln - einen davon hast Du ja aufgezeigt. Würde mich aber einfach mal interessieren ob so was nicht doch geht.
Das mit der Versionsabfrage mache ich übrigens an anderer Stelle auch. Bei der Abfrage ob es Updates gibt. Aber da gehe ich dann halt wirklich auf die interne Version der dll. Hier aber geht es um komplett andere Dateinamen.
Jan
etwas anders als ich das mit der Abfrage gedacht hatte. Aber auch nicht das was ich suche. Ich dachte da eher an etwas wie: "Ist die meinedll12.dll oder die meinedll13.dll eingebunden?":
Das ist natürlich nur eine rein akademische Frage. Es gibt mindestens drei Wege, das anders zu regeln - einen davon hast Du ja aufgezeigt. Würde mich aber einfach mal interessieren ob so was nicht doch geht.
Das mit der Versionsabfrage mache ich übrigens an anderer Stelle auch. Bei der Abfrage ob es Updates gibt. Aber da gehe ich dann halt wirklich auf die interne Version der dll. Hier aber geht es um komplett andere Dateinamen.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Marcus Herz
- 1000 working lines a day
- Beiträge: 852
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 192 Mal
- Kontaktdaten:
Re: #pragma abfragen
auch eine Möglichkeit, vor allem wenn es neue Funktionen gibt:
#IF MENIEVARIALBE = 23
#ELSE
#IF MENIEVARIALBE = 25
#ENDIF
#ENDIF
oder im project einen Compilerschalter setzen
COMPILE_FLAGS = /w /wi /wl /wu /b /q /dMEINEVARIABLE=25
#IF MENIEVARIALBE = 23
#ELSE
#IF MENIEVARIALBE = 25
#ENDIF
#ENDIF
oder im project einen Compilerschalter setzen
COMPILE_FLAGS = /w /wi /wl /wu /b /q /dMEINEVARIABLE=25
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: #pragma abfragen
Marcus,
das wäre Variante 2. Die ich im Kopf hatte.
Aber wie gesagt: Ich würde einfach nur gerne wissen, ob man über den Dateinamen abfragen kann, ob diese dll eingebunden worden ist.
Jan
das wäre Variante 2. Die ich im Kopf hatte.
Aber wie gesagt: Ich würde einfach nur gerne wissen, ob man über den Dateinamen abfragen kann, ob diese dll eingebunden worden ist.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Marcus Herz
- 1000 working lines a day
- Beiträge: 852
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 192 Mal
- Kontaktdaten:
Re: #pragma abfragen
aDll := dllInfo(, DLL_INFO_LIST)
gibt alle geladenen DLL zurück
gibt alle geladenen DLL zurück
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
- Marcus Herz
- 1000 working lines a day
- Beiträge: 852
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 192 Mal
- Kontaktdaten:
Re: #pragma abfragen
was war denn Variante 3?
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: #pragma abfragen
Marcus,
Variante 3 wäre, das ich per IF File() nach dem Dateinamen frage.
Aber es gibt bestimmt auch noch Varianten 4 und 5 und ...
Jan
Variante 3 wäre, das ich per IF File() nach dem Dateinamen frage.
Aber es gibt bestimmt auch noch Varianten 4 und 5 und ...
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: #pragma abfragen
@Marcus:
den Namen abfragen.
Ja, aber nur die Handles, keine Dateinamen. Man muss dann für jeden Eintrag aus dieser Liste mitaDll := dllInfo(, DLL_INFO_LIST)
gibt alle geladenen DLL zurück
Code: Alles auswählen
DllInfo(<nHandle>,DLL_INFO_NAME)
Zuletzt geändert von Tom am Mi, 07. Okt 2020 16:37, insgesamt 1-mal geändert.
Herzlich,
Tom
Tom
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: #pragma abfragen
Code: Alles auswählen
FUNCTION IsDllLoadedByName(c)
LOCAL aList := DllInfo(,DLL_INFO_LIST), nCtr := Len(aList), n
FOR n := 1 TO nCtr
IF Upper(DllInfo(aList[n],DLL_INFO_NAME)) == Upper(c)
RETURN .T.
ENDIF
NEXT
RETURN .F.
Usage: ? IsDllLoadedByName('meinedll31.dll')
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: #pragma abfragen
Hallo Tom,
Danke für die Mühe, das Sample zusammen zu stellen. Macht genau das was ich gedacht hatte. Ich hatte nur gehofft daß das mit einer mir nicht in den Sinn kommenden Xbase++-Funktion direkt klappen könnte.
Jan
Danke für die Mühe, das Sample zusammen zu stellen. Macht genau das was ich gedacht hatte. Ich hatte nur gehofft daß das mit einer mir nicht in den Sinn kommenden Xbase++-Funktion direkt klappen könnte.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Marcus Herz
- 1000 working lines a day
- Beiträge: 852
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 192 Mal
- Kontaktdaten:
Re: #pragma abfragen
Ich wollte Jan auch noch ein bisschen was zum Denken überlassen :-)
Gruß Marcus
Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Erkenne, was du findest, dann weißt du, wonach du gesucht hast