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:

Excel-VBA -> FBX-Screen

 
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: 21.02.2008, 12:52    Titel: Excel-VBA -> FBX-Screen Antworten mit Zitat

Morgen!

Wahrscheinlich strapaziere ich das Thema mal wieder zum äußersten happy
Ich finds aber ganz interessant:

Ich suche nach einem Weg in (Excel)VBA einzelne Pixel zu setzen. Also ein Bild aufzubauen... Über Sinn und Unsinn kann man mal wieder streiten..

Habe versucht den Ansatz von
http://fsr.sourceforge.net/forum/viewtopic.php?t=19&sid=8c25df5170e15d1c96e5fd24415320ed
so abzuwandeln das mir vba ein screen öffnet. Dafür habe ich es folgender Maßen abgewandelt:

Code:

' fbxclone.bas
' fbc -dylib fbgfxclone.bas
#INCLUDE ONCE "windows.bi"
#INCLUDE ONCE "win/ole2.bi"

'' notice the mangling method, it must be "windows-ms" OR VB won't find ANY FUNCTION
EXTERN "windows-ms"

sub clone_screenres     (w as integer,h as integer,depth as integer=32,pages as integer=0,f as integer=0) export
  screenres w,h,depth,pages,f
end sub

sub clone_screencontrol (what as integer,byref p1 as integer,byref p2 as integer) export
  screencontrol what,p1,p2
end sub

sub clone_print         (byref value as string) export
  print value
end sub

sub clone_screenclose   () export
  if screenptr then screen 0
end sub

sub clone_sleep (ms as integer=-1,flag as integer=-1) export
  if ms=-1 and flag=-1 then
    sleep
  elseif flag=-1 then
    sleep ms
  else
    sleep ms,flag
  end if
end sub

sub clone_windowtitle (byref title as string) export
  windowtitle title
end sub

sub clone_cls (n as integer=-1) export
  if n=-1 then
    cls
  else
    cls n
  end if
end sub

' add here all your needs
' imagecreate/destroy
' inkey, nultykey, getkey ...
' pset, line, circle,
' put, get ...
' sleep, view, window ...
' makecurent for OpenGL
end extern


(Die datei fbxclone.bas habe ich dann mit "fbc -dylib fbgfxclone.bas" kompiliert)
Im VBA-Projekt habe ich ein Userform und einen Commandbutton erstellt.
Der Quelltext des Userforms sieht dann so aus:

Code:


Private Declare Sub clone_screenres Lib "C:\Programme\FreeBASIC\fbxclone.dll" (w As Integer, h As Integer, depth As Integer, pages As Integer, f As Integer)
Private Declare Sub clone_sleep Lib "C:\Programme\FreeBASIC\fbxclone.dll" (ms As Integer, flag As Integer)

Private Sub CommandButton1_Click()
clone_screenres 300, 300, 32, 1, 0
clone_sleep -1, -1
End Sub



Jetzt hab ich eigentlich erwartet das sich etwas tut wenn ich auf CommandButton1 clicke.. aber ehrlich, da tut sich nüx...
Habe auch schon testweise eine Funktion in die DLL eingefügt die mir einen einfachen integer-wert nach vba zurückgibt. Das klappt auch einwandfrei! Würde also wahrscheinlich nicht an der Sub declaration liegen..

Weiss da jemand weiter?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 21.02.2008, 14:09    Titel: Antworten mit Zitat

booooh eeeey....
da hast du dir aber was vorgenommen missbilligen
aus Excel heraus mit VBA ein Fenster mit fbgfx erstellen... mit dem Kopf durch die Mauer wollen

Ohne mich jetzt in Joshys 'fbgfxclone.dll' vertieft zu haben, fiel mir auf, dass er seine dll mit extern "c" versieht (klar, in FB werden einige Funktonen der C-Runtime gebraucht). Kommt da keine Fehlermeldung, dass diese C-Funktionen nicht erreichbar sind????
In der dll für VBA wird extern "windows-ms" verwendet, verträgt sich das miteinander????
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 21.02.2008, 14:57    Titel: Antworten mit Zitat

@Volta:

Keine Ahnung happy .. es passiert einfach nur rein gar nichts happy

deklariere ich die dll mit extern "c" und binde diese dll in ein freebasic-code ein funktionierts einwandfrei... (Also damit lässt sich der Screen der DLL öffnen)
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