DLL Importer für andere Sprachen

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Ok, Kommentare wohl eher ' :)

Also, mit /out: kann man einen Ausgabepfad wählen, mit /name: einen
eigenen Grundnamen für die DLL wählen (gilt auch für die erzeugten
Dateien). Und mit /prf werden nun .ph Dateien erstellt. Ich hoffe, es
ist alles korrekt.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

:allright:
Aber Float darfste ruhig zulassen, den Pointer zu nem Float kann man nachbilden.
Schreibste nur, das 4Byte Float erwartet wird. Nur den Datentyp also solches
gibts nicht.

// Nachtrag:
Statt:

Code: Alles auswählen

' not supported types: Test(= External("test.dll", "Test",; ' a&, b$, cerror, Ergebnis void
Hallo(= External("test.dll", "Hallo"; ' Ergebnis void
sowas:

Code: Alles auswählen

Test(= External("test.dll", "Test",; ' a&, b$, c 4-Byte Fload, Ergebnis void
Hallo(= External("test.dll", "Hallo"; ' Ergebnis void
PS: Die Syntax ist okay so!
Zuletzt geändert von ts-soft am 10.01.2007 18:38, insgesamt 1-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Soll ich dann auch noch Quads erlauben? Ihr mögt ja anscheinend zu
tricksen :mrgreen:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Quad mach keinen Sinn, danke für die Nachfrage :mrgreen:
Aber es gibt ja nunmal viele DLLs die Floats erwarten, Quad eher weniger.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Ok, ich habe Floats nun auch erlaubt. Auch als Rückgabetyp, da das eigentlich
bei stdcall gleich funktioniert wie Doubles, ausser dass die Genauigkeit
dann abnimmt. Hoffe das funktioniert auch in Profan :)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Dann kannste dich ja an FreeBasic, VB (ist fast gleich), usw. ranmachen :mrgreen:

Nachtrag zu Profan:
Profan kennt zwar nur Double, aber es gibt eine Funktion Single(Double!) zum übergeben an DLLs
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Kannst du mir sagen, ob das hier:
http://209.85.135.104/search?q=cache:KF ... on~von~API)Funktionen.txt+freebasic+dll+aufrufen&hl=de&gl=de&ct=clnk&cd=8&client=opera
mit den Import-Libs von PB funktioniert? Oder gibt es da einen anderen
Standardweg?
Fabio
Beiträge: 234
Registriert: 29.08.2004 14:47

Beitrag von Fabio »

Hmm, ansich ne coole sache, aber was nützt es wenn man die in PB erstellten
Dll z.b an einen BlitzBasic programmiere der kein PB hat, nicht weiter geben darf.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Warum sollte das so sein ?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

#inclib "comdlg32"
importiert die lib

Code: Alles auswählen

declare function ChooseColor alias "ChooseColorA" (byval as LPCHOOSECOLORA) as BOOL
geht dann ohne dll angabe.
Die Import libs von PB sollten funktionieren wenn man sie mit der Endung *.a versieht :mrgreen:
Die Endung für die INC-Dateien ist *.bi (dies ist das einzig sichere in diesen Aussagen)

Ich glaube, da solltest Du Dir FB laden und testen

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten