Seite 3 von 3
Verfasst: 10.01.2007 20:57
von remi_meier
Danke!
Also ich hoffe, dass nun auch /fb funktioniert. Bin gerade zu faul es auch
zu testen

. Ev. mach ich das noch, oder jemand sonst ist so lieb
Zumindest die Syntax wird akzeptiert.
Link ist immer noch
http://remi.secretly.de/downloads/headergen.exe
Verfasst: 10.01.2007 21:04
von ts-soft
Der haut nicht hin
Code: Alles auswählen
' Rename the .lib into .a to let the Linker find the library!
#INCLIB "test".a ' < .a ???
DECLARE SUB Test (a AS INTEGER, b AS STRING, c AS SINGLE)
DECLARE SUB Hallo ()
also das .a gehört da meiner Meinung nach nicht hin.
SUB ist falsch, da die DLL-Funktionen was zurückgeben, kann also nur
FUNCTION heissen.
Ich sehe gerade, Ergebnisse werden garnicht erkannt, bzw. evtl. nur bei ProcedureDLL.l ?
// Nachtrag:
Okay, du gehts davon aus, das .l usw. angegeben sind, vielleicht
zusätzlich nach ProcedureReturn suchen, ich lasse .l fast immer weg.
// Nachtrag2
Habs mit FB getestet, bekomme es nicht zum laufen. Naja, hab auch schon
ewig nichts mehr mit gemacht, die Syntax ist nicht mein Ding

Verfasst: 11.01.2007 12:41
von remi_meier
Ja, ich gehe davon aus, dass ein Rückgabetyp angegeben wird. Anders
geht es leider nicht. Ein ProcedureReturn muss auch nix heissen (kann
ja zum Abbrechen der Prozedur verwendet werden). Das musst du leider
schreiben
Das ".a" werd ich noch an den richtigen Ort setzen, aber vorher halt doch
mal versuchen zu testen

. Ob es hingehört oder nicht, weiss ich nicht.
Einige schreiben sogar, dass der Dateiname noch ein "lib" davor haben
muss. Werd wohl testen müssen.
Thx!
Verfasst: 11.01.2007 13:09
von ts-soft
Eine Sub macht in einer exportieren DLL Funktion aber nicht viel Sinn und
ProcedureReturn ohne was gibt 0 als Long zurück, also ist es eine Funktion
oder schlechter Coding Stil. Procedure mit Suffix finde ich häßlich und nehme
es meist nur für Strings weils sonst nicht funktionieren würde.
Meiner Meinung nach kann man bei einer DLL in 99,9% aller Fälle von einer
Funktion ausgehen.
Gruß
Thomas
Verfasst: 11.01.2007 13:37
von remi_meier
Ne, ProcedureReturn ohne was gibt den Inhalt von EAX zurück, kann also
alles Mögliche sein. Genau das machen VOID-Funktionen. Aber ich kann
ja für die faulen wie dich nen Parameter hinzufügen
Wieso sollte eine DLL nicht auch Subs drin haben? Also ich könnte mir
da einiges vorstellen.
Aber: Ich kriege dieses FB mit Import-Lib einfach nicht gebacken! Am
Ende muss ich sie mit DYLIB() dynamisch laden

Verfasst: 11.01.2007 13:43
von ts-soft
remi_meier hat geschrieben:
Wieso sollte eine DLL nicht auch Subs drin haben? Also ich könnte mir
da einiges vorstellen.
Ja, aber selten exportiert, bzw. wenn, dann
sollte sie doch wenigstens erfolg oder nichterfolg zurückgeben.
remi_meier hat geschrieben:
Aber: Ich kriege dieses FB mit Import-Lib einfach nicht gebacken! Am
Ende muss ich sie mit DYLIB() dynamisch laden

Würde ich auch so sehen. DYLIB sollte reichen.
Gruß
Thomas
Verfasst: 11.01.2007 14:21
von remi_meier
Also FreeBasic sollte nun gehen (ein kleiner Test war mal positiv). Dann
gibts noch die Option /deftype:<type>
/deftype:long z. B...