ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
4771
4771
EMPFEHLEN
-
Mal sehen ob mir einer weiterhelfen kann

Eine Library (eine shared) zu erstellen habe ich ja schon hinbekommen
jetzt muss ich von meinem C Programm das nachher zur Library wird eine andere shared Library
benutzen - wie macht man das ?
ich nutze gcc trotzdem bin ich auch für Tips dankbar die ander Compiler betreffen
ev hilft mir das ja auch weiter
-
25.10.04 22:39 #2
- Registriert seit
- Jan 2002
- Ort
- Bayern
- Beiträge
- 1.390
Also shared Libs verwendest du unter Windows mit LoadLibrary() oder unter UNIX mit dlopen().
Oder verstehe ich hier jetzt was falsch?
Gruß Homerwe would change the world if god gave us the source code...
and remember, science is nothing more than reverse engineering nature...
Current projects:
- LdrawConverter
-
Jo es gibt 3 Library Arten

statisch; shared und dynamisch und dlopen nutzt man bei dynamischen
Ich habe mir mal gestern ein Howto runtergeladen nur meine Fall wird dort nicht
behandelt
Ich bekomme meine Libaray ja fehlerfrei übersetzt, nur er springt in dem Teil wo ich die andre Library
nutzte ins Nirwana
mache ich ein printf rein zur Kontrolle, statt dem Aufruf der anderen Libraryfunction geht es
-
26.10.04 15:20 #4
- Registriert seit
- Jan 2002
- Ort
- Bayern
- Beiträge
- 1.390
Also so ganz bin ich daraus noch nicht schlau geworden, erklär mal genauer was du machen willst, evtl.
Gruß Homerwe would change the world if god gave us the source code...
and remember, science is nothing more than reverse engineering nature...
Current projects:
- LdrawConverter
-
also gegeben ist ein ctapi.so shared Library die einige Schnittstellen zur Verfügung stellt
und ich möchte eine Library erstellen die ein paar Anpassungen macht
Programm > meineLib > Herstellerlib
um mein Problem ist das ich weiss wie ich dem Compiler kann das er die Herstellerlib
einbinden soll.
Vermutlich geht das auch nicht - werde wohl alles in ein Verzeichnis packen müssen
und eine komplette neue Library erstellen müssen
-
27.10.04 12:00 #6
- Registriert seit
- Jan 2002
- Ort
- Bayern
- Beiträge
- 1.390
Das Programm ist das auch von dir? Wenn ja, dann sagst du in deinem Programm ja bestimmt, das du mit dlopen() deine lib lädst mit dlsym() holst du dir ja einen Funktionszeiger auf eine Funktion.
Also wenn ich dich richtig verstehe möchtest du deine Lib einfach dazwischen hängen, zwischen deinem Executable-Programm und der Herstellerlib, oder?
Also müsstest du die Funktionen ja gleich benennen zb.
Programm:
Code :1 2 3 4 5 6 7 8 9 10 11 12
int main(int argc, char** argv) { #include <dlfcn.h> int (myFunc*)(int); //funktionszeiger void* handle handle = dlopen("mylib.so", RTLD_LAZY); myFunc = dlsym(handle, "myFunction); // aufruf int ret = myFunc(42); dlclose(handle); return 0; }
Deine mylib.so:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include <dlfcn.h> int MyFunction(int param) { // vorbehandlung .... int (myFunc*)(int); //funktionszeiger void * handle; dlopen("ctapi.so", RTLD_LAZY); myFunc = dlsym(handle, "myFunction); // aufruf der lib des Herstellers int ret = myFunc(param+99); dlclose(handle); // nachbehandlung return ret; }
So das ganze ist jetzt nix anderes als eine dazwischengeschaltete lib.
Gruß Homerwe would change the world if god gave us the source code...
and remember, science is nothing more than reverse engineering nature...
Current projects:
- LdrawConverter
Ähnliche Themen
-
Solr eine Lucene basierte Enterprise Search Library
Von Thomas Darimont im Forum Java Technology NewsAntworten: 1Letzter Beitrag: 09.05.12, 10:30 -
Eine DLL Datei in java.library.path einbinden
Von Steven19 im Forum JavaAntworten: 5Letzter Beitrag: 04.11.10, 21:17 -
Library in eigne Library einbinden
Von Memphis01 im Forum JavaAntworten: 3Letzter Beitrag: 18.08.10, 22:56 -
Cinema 4D - Library erstellen! (Wie) geht das?
Von homeedition im Forum Cinema 4DAntworten: 2Letzter Beitrag: 09.10.08, 17:03 -
Library soll Methoden bereitstellen, ohne eine Instanz zu benötigen
Von killkrog im Forum JavaAntworten: 3Letzter Beitrag: 25.11.07, 20:14





Zitieren
Login






