Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 04.02.2007, 17:03 Titel: freebasic dll grafikausgabe in visual basic nutzen ? |
|
|
Hallo,
mehr durch Zufall bin ich auf Freebasic gestoßen und bin wirklich sehr überrascht über die Möglichkeiten ! Tolle Arbeit; aber das nur am Rande...
Ich möchte eine dll in Freebasic erstellen und in Visual Basic 5 nutzen, ich möchte erstmal nur testen, ob man eine Stringausgabe in einem Grafikfenster hinbekommt !
Leider ist da irgendwo ein Fehler und ich komme da nicht wirklich weiter...
Wie gesagt, ich möchte über die "Dll" einfach Text in einem Grafikfenster(Kein Vollbildmodus) ausgeben !
Der untere Code läuft nicht, entweder hängt sich die Ide von VB5 auf oder wenn es kompiliert ist, beep der Rechner mehr als ungesund ;-(
Was ich noch etwas merkwürdig fand, wenn ich bevor das Grafikfenster im Freebasic Programm aufgerufen wird, ich vorher ein Messagerequester/Infofenster setze, er mir dann aber das Grafikfenster aufbaut...wieso ist das denn?
und wie kann man ein Grafikfenster über die Dll aufgerufen wieder schließen lassen?
Das sind aber jetzt nur Fragen nebenbei, wichtig wäre erstmal, daß der untere Code läuft !
Ich würde mich über Antworten sehr freuen...
Gruß
Thomas
p.s. DANKE AN DEN ADMINISTRATOR, DER MICH HEUTE PER HAND FREIGESCHALTET HAT )
Code: |
Rem HIER DAS FREEBASIC PROGRAMM ALS -dynlib kompiliert
#include "windows.bi"
function show_string_method_1 alias "show_string_method_1" (byref mystring as string)as integer Export
SCREEN 18, 32, 8 or 8
' Ausgabe
for i=1 to 20
LOCATE i: PRINT mystring
' Warten bis ESCAPE gedrückt wurde
sleep 50
next
DO
LOOP UNTIL MULTIKEY(1)
return 0
end function
rem HIER DAS VISUAL BASIC PROGRAMM
rem im ########## MODUL
Public Declare Function show_string_method_1 Lib "c:\freedll.dll" Alias "show_string_method_1@4" (ByRef mystring As String) As Integer
rem auf ########## Form1
Private Sub Command1_Click()
Dim test As String
test = show_string_method_1("DAS IST EIN TEST")
End Sub
|
|
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 04.02.2007, 18:21 Titel: Re: freebasic dll grafikausgabe in visual basic nutzen ? |
|
|
tom_verbatim hat Folgendes geschrieben: | Code: | (byref mystring as string)
|
|
Ich bin mir recht sicher, das FB und VB ein anderes Stringformat haben.
Probiermal etwas wie ZString. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 04.02.2007, 18:30 Titel: zstring geht nicht ;-( |
|
|
Hallo,
erstmal Danke für Deine Antwort.
Code: | function show_string_method_1 alias "show_string_method_1" (byref mystring as zstring)as integer Export |
wenn ich string in zstring ändere, steigt der compiler mit einer fehlermeldung aus ;-( irgendwas mit expect...
hat evtl. jemand ein beispielcode ? oder noch einen tipp ?
Gruß+Danke
Thomas |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 04.02.2007, 19:20 Titel: Re: zstring geht nicht ;-( |
|
|
tom_verbatim hat Folgendes geschrieben: |
Code: | function show_string_method_1 alias "show_string_method_1" (byref mystring as zstring)as integer Export |
|
Länge muss auch angegeben sein.
Code: | function show_string_method_1 alias "show_string_method_1" (byref mystring as zstring*50)as integer Export |
Wie gesagt, ich kenn die VB Seite nicht, ich weiss nur das FB eben ein "exotisches" Stringformat hat. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 04.02.2007, 19:43 Titel: geht nicht |
|
|
hi,
ich kann das nicht compilieren ;-(
auch wenn ich bei zstring die *50 ransetze
der compiler sagt mir Error 57: "illegale spezification ".... |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.02.2007, 19:57 Titel: |
|
|
Welche Compiler-Version hast du?
Ich empfehle dir wärmstens, den neuesten Compiler zu installierern ,falls du eine ältere Version (z.B. das komplettpaket von freebasic.de) besitzt.
Thread dazu: http://forum.qbasic.at/viewtopic.php?t=3231 _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 04.02.2007, 20:01 Titel: compilerversion |
|
|
hi,
also meine compilerversion ist die 0.16
und ich arbeite mit dem FBIDE; aber bin natürlich in der Eingabeaufforderung, wenn ich das .bas zur -dynlib compiliere....
gruß thomas |
|
Nach oben |
|
 |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 04.02.2007, 20:07 Titel: auch 0.17 geht nicht |
|
|
so, hab mir jetzt nochmal die letze Version von FB geholt
FB-v0.17b-jul-30
und versucht damit zu compilieren, gleicher fehler ;-(
gruß thomas |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.02.2007, 20:08 Titel: |
|
|
Wo genau markiert der compiler den fehler? poste mal bitte die log. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 04.02.2007, 20:39 Titel: log ? |
|
|
die fbide log ausgabe ist leer, ich gebe ja alles in der eingabeaufforderung vo n fbide ein; jedenfalls hier der genaue fehlercode
freedll.bas(3):error 57: Illegal specification, at parameter 1 (mystring) of show_string_method_1()
function show_string_method_1 alias "show_string_method_1" (byref mystring as zstring*50) as integer export |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 04.02.2007, 23:31 Titel: |
|
|
Mach mal zstring ptr draus und schreib byval statt byref, dann sollte es gehen. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 05.02.2007, 09:47 Titel: geht aber läuft nicht ;-( |
|
|
hi,
erstmal danke für den tipp...
ja compilieren läuft jetzt, aber das verhalten des programms ist genau das gleiche...
entweder die ide hängt sich auf oder wenn das prg. compiliert ist, beep es und der bildschirm wird kurz initialisiert aber nicht aufgebaut und bleibt hängen.....
jemand noch ein tipp, wie ich über eine dll aufgerufen in vb5 graphicbildschirm mit text ausgeben kann; die sich NICHT aufhängen ?
danke im vorfeld
thomas |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 05.02.2007, 16:35 Titel: |
|
|
Zitat: | Rem HIER DAS FREEBASIC PROGRAMM ALS -dynlib kompiliert
|
muss das nicht -dylib heissen? Wenn ja kann es gar nicht klappen _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 05.02.2007, 17:07 Titel: hi ;-) |
|
|
hi
"muss das nicht -dylib heissen? Wenn ja kann es gar nicht klappen"
neee ist schon richtig so, war hier nur ein schreibfehler, arbeite auf zwei rechnern parallel und da kommt sowas schonmal vor
übrigens hab ich ja geschrieben, daß ES COMPILIERT WURDE....
das problem ist, das die dll nicht richtig läuft und wahrscheinlich hat das irgendwie mit dem grafikfenster bzw. mit der grafikausgabe zu tun....
WIESO KANN MAN KEINE DLL BAUEN, DIE ÜBER VISUAL BASIC ANGESPROCHEN WIRD, EINEN STRING ÜBERGIBT UND GENAU DIESEN STRING IN EIN GRAFIKFENSTER SETZT ? SOLLTE DOCH MACHBAR SEIN ODER ?
Haben die Grafikausgaben irgendwie mit directx zu tun?
Ich habe die ganze Sache mal versucht in Purebasic zu machen und da ist auch alles abgestürzt; lag aber an directx..aber das nur am Rande...
Help, ist hier KEIN PROFI ;-(((
Schade, wäre ja auch zu schön gewesen
Gruß Thomas |
|
Nach oben |
|
 |
alfonsospringer
Anmeldungsdatum: 27.04.2006 Beiträge: 445
|
Verfasst am: 05.02.2007, 20:51 Titel: |
|
|
war ja nicht boese gemeint Ich bin jedenfalls kein Profi, aber es gibt bestimmt jmd hier, der es dir erklaeren kann. _________________ Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia
ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN |
|
Nach oben |
|
 |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 05.02.2007, 23:16 Titel: ok |
|
|
"aber es gibt bestimmt jmd hier, der es dir erklaeren kann!"
wäre schön, aber so langsam glaube ich nicht mehr, daß das überhaupt geht....
stringübergabe an dll und grafikausgabe in freebasic....
s cccccccccccccccccchhhhhhhhhhaaaaaaaaddddddddeeeeeeeeeee
gruß
thomas |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 06.02.2007, 14:59 Titel: |
|
|
Stringübergabe geht, aber bei Delphi gibt es z.B. ähnliche Hürden.
Man kann keine sprachspezifischen Strings nehmen (normalerweise der Datentyp String), da eine DLL normalerweise auch von anderen Anwendungen genutzt wird, die nicht mit dem gleichen Compiler compiliert wurden. Und demzufolge würde erstmal die Argumentübergabe nicht klappen und dann b) auch die String-Übergabe scheitern. Hier musst du also wirklich PString nehmen und in der DLL mit einem Pointer arbeiten. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 06.02.2007, 18:04 Titel: hmm ? |
|
|
Hi,
ich denke, daß problem ist nicht so sehr die dll übergabe wie einen string senden; ich denke, daß hat was mit der grafikausgabe zu tun.
ein string kann ich ja problemlos senden in vb5 an die dll und beispielsweise eine messagebox mit dem übergebenden string ausgeben lassen, daß läuft alles wunderbar, auch kann ich mit werten arbeiten etc.
aber sobald irgendwie was mit grafikausgabe kommt / ABSTURZ
und genau dafür wäre für mich freebasic so gut geeignet .....
hat den niemand mal eine dll für vb entwickelt, die grafik ausgiebt ?
gruß tom |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 06.02.2007, 18:13 Titel: |
|
|
Ah.
Also entweder ich hab das überlesen, oder das hast du nicht gesagt.
MUSS es unbedingt über eine FB-DLL sein? Evtl. magst du ja auch mit OpenGL arbeiten?
Die Einarbeitung darin ist wirklich schnell getan.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
tom_verbatim
Anmeldungsdatum: 03.02.2007 Beiträge: 53
|
Verfasst am: 06.02.2007, 18:25 Titel: |
|
|
hi,
hmmm die dll wäre einfach super gewesen, es geht mir jetzt direkt um mein eigentlich schon fast fertiges projekt...
ich habe da ein wortspiel erstellt und möchte nun einfach per string, verschiedene wörter/buchstaben in einem fenster ausgeben, die sich bewegen bzw. ein/ausgeblendet werden/hin und herschweben etc; mit visual basic 5 mitteln ist das nicht so einfach zu machen und directx nein danke, ist mir zu langwierig, mich da einzuarbeiten...
Also wenn ich das komplette Projekt auf Freebasic umstellen müßte ;-( ohje, dann lasse ich es doch lieber...
OpenGL ist ansonsten schon eine schöne sache....
schade, daß es mit freebasic nicht geht, aber warum eigentlich nicht ???und da ist wieder diese eine entscheidene Frage
gruß tom
p.s. wer rechtschreibfehler findet bzw. falsche groß und kleinschreibung, kann sie gerne behalten  |
|
Nach oben |
|
 |
|