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:

VBA <> FB

 
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
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 14.07.2008, 16:24    Titel: VBA <> FB Antworten mit Zitat

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 happy

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?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
micha



Anmeldungsdatum: 09.12.2005
Beiträge: 72

BeitragVerfasst am: 15.07.2008, 04:26    Titel: Antworten mit Zitat

Tip ByRef und ByVal
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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