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:

DLL konvertieren

 
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
Bino249



Anmeldungsdatum: 12.01.2008
Beiträge: 5
Wohnort: Menteroda/Thüringen

BeitragVerfasst am: 12.01.2008, 13:26    Titel: DLL konvertieren Antworten mit Zitat

kann man eine VB-DLL nach Freeebasic konvertieren oder mu? man den Quellcode umschreiben und wie geht es am schnellsten ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 12.01.2008, 13:46    Titel: Antworten mit Zitat

Hallo,

das Portieren von VisualBasic- zu FreeBasic-Code ist in der Regel ohne größere Schwierigkeiten machbar, wenn nicht übermäßig Gebrauch von VB-spezifischen Funktionen wie z.B. bestimmten Datenbankobjekten gemacht wurde. Genau kann ich den Aufwand ohne den Quelltext zu kennen allerdings nicht abschätzen.

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Bino249



Anmeldungsdatum: 12.01.2008
Beiträge: 5
Wohnort: Menteroda/Thüringen

BeitragVerfasst am: 13.01.2008, 01:43    Titel: Antworten mit Zitat

Hallo Sebastian
ich könnte dir die source codes zutgänglich machen sage mir nur wo ich sie hinladen soll.
MfG Bino
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 13.01.2008, 01:47    Titel: Antworten mit Zitat

http://rafb.net/paste/
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 13.01.2008, 13:14    Titel: Antworten mit Zitat

Hallo,

Bino249 hat Folgendes geschrieben:
ich könnte dir die source codes zutgänglich machen sage mir nur wo ich sie hinladen soll.

du könntest dich kurzerhand auf http://www.freebasic-portal.de registrieren und dann das dortige NoPaste-Codeablage System nutzen. Wenn der Quelltext nicht öffentlich sein soll, kannst du ihn mir auch per E-Mail zukommen lassen. Die E-Mail-Adresse ist unter der -Schaltfläche angegeben.

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Bino249



Anmeldungsdatum: 12.01.2008
Beiträge: 5
Wohnort: Menteroda/Thüringen

BeitragVerfasst am: 15.01.2008, 00:42    Titel: Antworten mit Zitat

hi, ich glaube ich habe einen einfacheren weg gefunden. Habe eine "normale" win dll gefunden die im system32 Ordner von xp steht, mit dem mitgeliefertem beispielprogramm inVB funzt sie auch nur IN FB haut es nicht hin, habe sie auch schon in den system orner kopiert und die vorschläge mit
#INCLIB "aaaa.dll"
Dim hndl as INTEGER
hndl=DYLIBLOAD("aaaa.dll")
ausprobiert immer das gleiche
ld.exe: cannot find -laaaa.dll
ich jetzt ratlosjavascript:emoticon('weinen')
weinen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 15.01.2008, 11:54    Titel: Antworten mit Zitat

Hi Bino249,
#INCLIB ist nicht die richtige Anweisung um an die Funktionen der DLL zu kommen.
Code:
Dim hndl as INTEGER
hndl=DYLIBLOAD("aaaa.dll")
ist schon besser lächeln
Weiter brauchst du Informationen welche Function/Sub du aus der DLL ausführen möchtest.
Unter den Examples im FB-Verzeichnis (... \EXAMPLES\DLL) findest du die testload.bas, die zeigt wie man das macht.
Code:
dim addnumbers as function( byval operand1 as integer, byval operand2 as integer ) as integer
addnumbers = dylibsymbol( hndl, "AddNumbers" )
Hier wird die Funktion "AddNumbers" definiert (d.h. mit welchen Werten muss sie gefüttert werden und welchen Wert gibt sie zurück).
Code:
print addnumbers( 4321, 7654 )
Dann kannst du sie benutzen.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Bino249



Anmeldungsdatum: 12.01.2008
Beiträge: 5
Wohnort: Menteroda/Thüringen

BeitragVerfasst am: 15.01.2008, 19:29    Titel: Antworten mit Zitat

Ich habe nun das ganze doch ins NoPaste System hochgeladen,
da ich denke das nur so der Zusammenhang logisch klar wird.
Derletzte vorschlag bringt nur eine weitere Fehlermeldung und zwar in der
DIM Addnumbers .... Zeile
Vieleicht hilfts

MfG Bino249
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 16.01.2008, 00:05    Titel: Antworten mit Zitat

lachen
natürlich gibt es eine Fehlermeldung, da in deiner DLL keine Funktion namens "AddNumbers" existiert.
Code:
Dim hndl As integer
hndl = DYLIBLOAD("K8055D.dll")
Dim opendevice As Function(ByVal cardadress As Integer) As Integer
opendevice = DYLIBSYMBOL(hndl,"opendevice")
Dim closedevice As Sub()
closedevice = DYLIBSYMBOL(hndl,"closedevice")
... 'Hier alle weiteren Functionen und Subs der K8055D.dll definieren
...
...

Sub connect()
  DIM cardadress AS Integer
  DIM h AS Integer
  DIM card as Integer
  cardadress = 3
  h = opendevice(cardadress)
  card = cardadress
End Sub

Achtung: die Variablen cardadress, h und card sind nur in der Sub gültig d.h. nach END SUB kennt FreeBASIC diese Variablen nicht mehr!
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 16.01.2008, 00:12    Titel: Antworten mit Zitat

Zitat:
#INCLIB ist nicht die richtige Anweisung um an die Funktionen der DLL zu kommen.


[klugscheiß]
Das stimmt nicht ganz. Man kann sehr wohl eine normale dll per #inclib in freebasic benutzen. Allerdings muss dafür eine .dll.a in freebasic/lib/win32 existieren, die man allerdings AFAIR mit dlltool, welches in freebasic/bin ist, erstellen kann. Sieht dann im Programm genau so aus, als würde man eine lib.a benutzen.[/klugscheiß]
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Bino249



Anmeldungsdatum: 12.01.2008
Beiträge: 5
Wohnort: Menteroda/Thüringen

BeitragVerfasst am: 16.01.2008, 03:31    Titel: Antworten mit Zitat

es funzt trotzdem nicht. Bringt es etwas die DLL ins BIN/WIN32 von FBEdit
zu kopieren ?
MfG Bino
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 16.01.2008, 13:29    Titel: Antworten mit Zitat

Was funzt nicht?
Nein, DLLs werden vom Betriebssystem nur im Verzeichnis des ausgeführten Programms und im System-Verzeichnis gesucht.
?? bei mir gibt es kein Verzeichnis BIN/WIN32 unter FBEdit.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
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