OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 14.07.2008, 16:24 Titel: VBA <> FB |
|
|
Nachdem ich weiss wie man VBA-Strings in FB-WStrings umwandel.. fehlen mir nun infos wie ich VBA-Integer bzw VBA-Long nach FB-Integer/Long konvertiere.
Ich erstelle eine DLL in FB die ich in VBA einbinden möchte.
In ihr stehen Funktionen die Long werte zurückgeben.
VBA erkennt diesen Wert auch zuverlässig. Daher dachte ich das die LONG-Datentypen kompatibel sind..
Aber anscheinend nicht, wenn ich LONG-Parameter in eine Funktion der DLL einbauen möchte...
Hoffe ich drücke mich nicht zu unglücklich aus so das ihr einigermaßen versteht was ich möchte
Kurz zum Code:
Die DLL wird mit "fbc -dll -export" kompiliert:
Code: |
#INCLUDE ONCE "windows.bi"
#INCLUDE ONCE "win/ole2.bi"
EXTERN "windows-ms"
FUNCTION openwindow ( ) AS long EXPORT
screenres 640,480,32
print "Running..."
FUNCTION = 1000
END FUNCTION
FUNCTION clwindow ( ) AS long EXPORT
screen 0
FUNCTION = 2000
END FUNCTION
FUNCTION drwpoint (x as long, y as long ) AS long EXPORT
'pset(x,y),RGB(255,255,255)
print "Zahl1: " & x
print "Zahl2: " & y
FUNCTION = 3000
END FUNCTION
END EXTERN
|
In VB verbinde ich die 3 Funktionen auf die Click-Ereignisse von 3 buttons:
Code: |
Private Declare Function openwindow Lib "c:\programme\freebasic\scr1.dll" () As Long
Private Declare Function clwindow Lib "c:\programme\freebasic\scr1.dll" () As Long
Private Declare Function drwpoint Lib "c:\programme\freebasic\scr1.dll" (x As Long, y As Long) As Long
Private Sub CommandButton1_Click()
MsgBox openwindow
End Sub
Private Sub CommandButton2_Click()
MsgBox drwpoint(100, 100)
End Sub
Private Sub CommandButton3_Click()
MsgBox clwindow
End Sub
|
Die jeweiligen MsgBox-Dialoge zeigen dir zurückgegeben Werte der Funktionen korrekt an.
Klickt man aber auf CommandButton2 erscheinen im GFX-Fenster nicht die korrekten zahlen.
Hab ich etwas grundsätzlich falsch gemacht? Oder liegt der Fehler im Detail? |
|