Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Wie funktioniert Swig?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
0oFreako0



Anmeldungsdatum: 17.12.2011
Beiträge: 114

BeitragVerfasst am: 03.02.2012, 16:55    Titel: Wie funktioniert Swig? Antworten mit Zitat

Kann mir jemand vielleicht erklären wie sas Swig Tool funktioniert?

Welche Parameter müssen angegeben werden um die C Header Dateien für FB zu wrappen ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 03.02.2012, 18:05    Titel: Antworten mit Zitat

Wenn die Forensuche nach Swig dir hier keine ausreichenden Antworten bringt, solltest du mal(entsprechende Englischkenntnisse vorausgesetzt) im engl. Forum suchen(24 Seiten Trefferliste).
Ich kann dir anders leider nicht helfen..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 03.02.2012, 18:47    Titel: Antworten mit Zitat

Eigentlich sollte eine readme dabei liegen, die es erklärt. Im Grunde ist es recht einfach (Annahme: der C-Header heißt 'foo.h'):

1. Datei namens 'foo.i' erstellen
2. Datei mit Inhalt füllen:
2.1 1. Zeile: '%module foo'
2.2 2. Zeile: '%include foo.h'
3. swig über die cmd aufrufen: 'swig foo.i'
4. Hoffen, dass swig mit dem Header klargekommen ist und alles richtig übersetzt hat.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
0oFreako0



Anmeldungsdatum: 17.12.2011
Beiträge: 114

BeitragVerfasst am: 03.02.2012, 22:52    Titel: Antworten mit Zitat

Thx für die schnelle Hilfe lächeln

Eine Frage hätte ich aber noch und zwar.

Wenn ich jetzt eine Dll habe mit Header und Lib Datei.
Ich übersetze mit Swig + Manueller arbeit die Header Datei.
Dann mit pexport erstelle ich mir die Def die ich dann mit dem dlltool nach
*.dll.a converte.

So nun bräuchte ich ja wenn ich mein Programm in Freebasic Kompiliert habe immer die Dll Datei auch im Verzeichniss oder im System.

Könnte ich die Lib von der Dll nicht mit reimp in eine Obj Datei umwandeln und diese dann in meinem Kompilat mitverlinken so das ich keine Dll Datei mehr brauche?

Klar wird dann das Kompilat grösser aber das stört mich net lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 04.02.2012, 01:20    Titel: Antworten mit Zitat

Das ist durchaus möglich. Wird aber definitiv nicht empfohlen, da die Imports verloren gehen können. Die Bibliothek muss mit der selben Linker-(Version) erstellt worden sein.
Auch die Lizenzbestimmungen beachten; Viele proprietäre Lizenzen verbieten Änderungen an den Binaries.

/edit: Unterstrichenes trifft nicht zu; Eine DLL in Objekte zu zerlegen ist nicht möglich. (Hatte gerade Relinking verstanden)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
0oFreako0



Anmeldungsdatum: 17.12.2011
Beiträge: 114

BeitragVerfasst am: 04.02.2012, 12:09    Titel: Antworten mit Zitat

Kurze Frage:
Wie übersetze ich das hier in freebasic

Test_API int __test_callspec__ func1 (LPFunc1 pFunc2);


Müsste doch mit Declare Function func1(byval LPFunc1) as int

(LPFunc1 pFunc2) oder bedeutet das es 2 parameter sind?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 04.02.2012, 13:18    Titel: Antworten mit Zitat

Um welche Lib gehts denn überhaupt? Evtl gibt es ja schon Header dazu und wir können schauen, ob es nicht schon eine statische Variante gibt.

Grundlagen C sollte man schon beherrschen, wenn man Header übersetzen will. (LPFunc1 pFunc2) bedeutet (ByVal pFunc2 As LPFunc1), func1 ist der Funktionsname, int ist der Rückgabetyp (allerdings As Integer, nicht nur int), __test_callspec__ ist irgendwo als WinAPI oder sonstiges definiert und würde in FB zu CDECL oder STDCALL werden (im Normalfall), Test_API wird auch irgendwo noch stehen und deutet auf den ersten Blick vermutlich den Export an.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz