Italia
Foro

ImportDLL, ImportFunc | Was mache ich falsch?

 
- Page 1 -



Christof
Neuß
Ciao,

ich versuche ganz einfach eine Funktion aus einer DLL zu nutzen.
Da ich gelesen habe, dass ImportDLL evt. nicht funktioniert und ich nicht alle Funktionen aus der DLL brauche, nehme ich ImportFunc.

Die erste und einfache Funktion ist, die Version der DLL auszulesen. Es funktioniert aber nicht.

DANKE!

1 kB
Hochgeladen:14.01.2016
Downloadcounter117
Download
770 kB
Hochgeladen:14.01.2016
Downloadcounter132
Download
 
XProfan X3
Win10 16 GB RAM
14.01.2016  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


Christof
Neuß
Der Punkt war das "hüpfende Komma".

So funktioniert's:
Var SQL3Handle&=UseDll("SQLite3.DLL")
ImportFunc(SQL3Handle&,"sqlite3_libversion","SQL3_Libversion")
Print "Programmstart..."
Print String$(SQL3_Libversion(),0)
FreeDLL SQL3Handle&
Print:Print:Print "Programmende!"
Waitkey
End
 
XProfan X3
Win10 16 GB RAM
14.01.2016  
 



Das beginnende Fragezeichen:

? SQL3.LIBVERSION()

ist so aber nicht richtig, oder?!
Var SQL3Handle&=UseDll("SQLite3.DLL")
ImportFunc(SQL3Handle&,"sqlite3_libversion","SQL3.LIBVERSION")
Print "Programmstart..."
? SQL3.LIBVERSION()
FreeDLL(SQL3Handle&)
Print:Print:Print "Programmende!"
Waitkey
End

Die DLL nutzt cdecl statt stdcall?

Ich verstehe die Aiuto zu importdll aber nicht,
muss eigenes Thema her.
 
14.01.2016  
 




Christof
Neuß
SORRY!!!
So geht's...
-------------------------
Var SQL3Handle&=UseDll("SQLite3.DLL")
ImportFunc(SQL3Handle&,"sqlite3_libversion","SQL3.LIBVERSION")
Print "Programmstart..."
Print String$(SQL3.LIBVERSION(),0)
FreeDLL SQL3Handle&
Print : Print : Print "Programmende!"
Waitkey
End

---------------------------

Das ? war mein Fehler. Hab' erst gar nicht verstanden, was Du mit "Freizeichen" meintest. War gedanklich bei einer anderen Sprache wo das Fragezeichen synonym per "Print" stehen kann/darf.
 
Win10 16 GB RAM
14.01.2016  
 



Ja, verwirrend, hatte Freizeichen geschrieben und meinte aber Fragezeichen. Habs korrigiert. ^^
 
14.01.2016  
 




Christof
Neuß
Häh?

Jetzt läuft's im Interpreter, aber die EXE meckert.

"Variable nicht deklariert: SQL3.LIBVERSION
Zeile 5

 
XProfan X3
Win10 16 GB RAM
14.01.2016  
 




Christof
Neuß
Der Punkt war das "hüpfende Komma".

So funktioniert's:
Var SQL3Handle&=UseDll("SQLite3.DLL")
ImportFunc(SQL3Handle&,"sqlite3_libversion","SQL3_Libversion")
Print "Programmstart..."
Print String$(SQL3_Libversion(),0)
FreeDLL SQL3Handle&
Print:Print:Print "Programmende!"
Waitkey
End
 
XProfan X3
Win10 16 GB RAM
14.01.2016  
 




Christof
Neuß
Jetzt habe ich noch ein bisschen weiter gemacht, aber ich hänge...
Var SQL3Handle&=UseDll("SQLite3.DLL")
ImportFunc(SQL3Handle&,"sqlite3_libversion","SQL3_Libversion")
ImportFunc(SQL3Handle&,"sqlite3_open","SQL3_Open")
ImportFunc(SQL3Handle&,"sqlite3_exec","SQL3_Exec")
Print "Programmstart..."
Erase "Probe3.sqlite"
Print String$(SQL3_Libversion(),0)
Var Datenbank&=0
SQL3_Open("Probe3.sqlite", Addr(Datenbank&))
Print Datenbank&, Addr(Datenbank&)
Var Befehl$="Create Table Probe 3 (Spalte01 text, Spalte02 text)"
Var Callback&=0
Var Param&=0
SQL3_Exec(Datenbank&, Addr(Befehl$), Callback&, Param&, 0)
FreeDLL SQL3Handle&
Print:Print:Print "Programmende!"
Waitkey
End

Jemand 'ne Idee, was ich beim Aufruf von SQL3_Exec anders machen muss?
 
XProfan X3
Win10 16 GB RAM
14.01.2016  
 




Michael
W.
Mir ist das SQLite einfach zu umständlich. FireBird arbeitet ähnlich wie MySQL/MariaDB und das reicht eigentlich. Auch die Datenbank darf dort größer sein als bei SQLite.
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
15.01.2016  
 




Christof
Neuß
Hallo Michael,

ich bin ja mittlerweile auch (fast) überzeugt, Firebird zu nehmen. Schon alleine deswegen, weil es in XProfan integriert ist und bestens supportati wird.

Es hat mich allerdings der "sportliche Ehrgeiz" gepackt, es wenigstens hinzukriegen circa diese Schiene mal eine Tabelle in SQLite anlegen, bestücken und auslesen zu können. Da ich mit DLL bisher auch nicht bis kaum gearbeitet habe, lerne ich nebenbei noch was. Ich würde halt gerne wissen, wie es geht. Eine Lösung gibt es ja generell mit der SQLite3.INC vom iF. Aber wieso funktioniert es nicht mit ImportDLL... und ImportFunc... ?

Ich werde mich noch etwas damit beschäftigen, aber entweder es klappt jetzt bald mal oder ich lasse es.
 
XProfan X3
Win10 16 GB RAM
15.01.2016  
 



Da hast Du Dir aber ne schwierige DLL per rausgesucht,
normalerweise sind die ganz umgänglich. Die SQLite nutzt z.B. cdecl statt stdcall - vlt. funktioniert deshalb ImportDLL etc. nicht.
 
15.01.2016  
 




RGH
ImportFunc und ImportDLL sollten auch bei CDECL-DLL einwandfrei funktionieren, aber vor dem Aufruf der Funktionen aus der DLL muss naturalmente mit Set("CallConv", "CDECL") die Aufrufkonvention korrekt eingestellt werden. Ansonsten gibt es einen Fehler oder es werden unsinnige Werte zurück gegeben. Im Beispiel oben fehlt diese Einstellung der Aufrufkonvention!

Saluto Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
15.01.2016  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

10.704 Views

Untitledvor 0 min.
H.Brill vor 10 Tagen
Erasmus.Herold28.11.2023
Normann Strübli29.01.2023
RudiB.30.08.2021
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie