| |
|
|
| Ich habe da eine Frage. Ich habe Prospeed.dll mal schon einwenig mit Profan aufprobiert und es ist eine tolle Sache. Nun bin ich auf Purebasic aufmerksam geworden. Es hat eine, so finde ich, bessere Syntax. Die Thread und andere Ansätze finde ich sehr spannend. Doch möchte ich die Prospeed.dll nicht verlieren. Zum Beispiel wegen den Tiles und solchen Geschichten. Bei einigen Funktionen hat es gut geklappt. Doch ich frage mich sehr wieso es im folgendem Beispiel nicht funktioniert. Ich habe mir schon die Zähne ausgebissen aber ich finde den Fehler nicht. Und wenn jemand mir einen Tipp geben könnte der vielleicht auch ein wenig Purebasic kennt wäre ich sehr dankbar.
OpenWindow(0,0,0,800,400,#PB_Window_SystemMenu,Fenster 1) ;Fenster erstel len
string.s = Hintergrund.jpg ;String definieren WID.l = WindowID(0) ;Windows Handle definieren
If OpenLibrary(0, ProSpeed.dll) ;Dll Öffnen EndIf
FLoadExtImage.l = IsFunction(0, LoadExtImage) ;Adresse der Funktion
FCopyExtBmp.l = IsFunction(0, CopyExtBmp) ;Adresse der Funktion
background.l = CallFunctionFast(FLoadExtImage, @string) ; Bild Laden mitt els Prospeed Fehler.l = CallFunctionFast(FCopyExtBmp,WID,0,0,800,400,background,0,0,0) ;Bild Darstellen
Repeat ;Loop anfang EventID = WaitWindowEvent() ; Warten auf Ereigniss
If EventID = #PB_Event_CloseWindow ; Ereigniss auswärten Quit = 1 ; Quit Variable setzen EndIf
Until Quit=1 ; Loop ende
CloseLibrary(0) ;Dll Schliessen
End ;Ende
Dann denke ich ist es auch an der Zeit dem Frank mal danke zu sagen. Für seine mühe und die super gelungene Prospeed.dll. Sobald ich mein erstes grössere Projekt beendet habe werde ich natürlich auch registrieren.
Vielen dank
NY |
|
|
| |
|
|
|
| Tjaaaaahhhh, ist natürlich nicht so leicht da wohl die meisten hier nicht mit PB arbeiten. Ich persönlich kenne es überhaupt nicht. Gibbed das zum freien Download? Also ich versuche es trotzdem mal, obwohl ich mit meinen Ausführungen warscheinlich scheitern werde.
Also Dein Beispiel im Grunde ist ja dieses: (gekürzt)
OpenWindow(0,0,0,800,400,#PB_Window_SystemMenu,Fenster 1) string.s = Hintergrund.jpg WID.l = WindowID(0) OpenLibrary(0, ProSpeed.dll) FLoadExtImage.l = IsFunction(0, LoadExtImage) FCopyExtBmp.l = IsFunction(0, CopyExtBmp) background.l = CallFunctionFast(FLoadExtImage, @string) Fehler.l = CallFunctionFast(FCopyExtBmp,WID,0,0,800,400,background,0,0,0) CloseLibrary(0)
2. Kürzung:
string.s = Hintergrund.jpg WID.l = WindowID(0) OpenLibrary(0, ProSpeed.dll) FLoadExtImage.l = IsFunction(0, LoadExtImage) FCopyExtBmp.l = IsFunction(0, CopyExtBmp) background.l = CallFunctionFast(FLoadExtImage, @string) Fehler.l = CallFunctionFast(FCopyExtBmp,WID,0,0,800,400,background,0,0,0) CloseLibrary(0)
1. Annahme:
blabla.s <-- das .s bedeutet string, .l = long?
3. Kürzung:
string$ = Hintergrund.jpg WID& = WindowID(0) OpenLibrary(0, ProSpeed.dll) FLoadExtImage& = IsFunction(0, LoadExtImage) FCopyExtBmp& = IsFunction(0, CopyExtBmp) background& = CallFunctionFast(FLoadExtImage&, @string) Fehler& = CallFunctionFast(FCopyExtBmp&,WID&,0,0,800,400,background&,0,0,0)
Wäres es jetzt (nicht syntaktisch) logisch immer noch richtig?
Dann entstehen aber ein paar Fragen:
1.Frage: Wenn du openlib sagst, bekommst du dann kein Handle? Lässt sich also in PB immer nur eine DLL zeitgleich ansprechen um den funktionen daraus ein handle zu verpassen? Oder warum braucht isfunction kein handle?
2.Frage: Ist das so normal in PB? string$ = Hintergrund.jpg CallFunctionFast(FLoadExtImage&, @string) Ich meine, {string.s und @string } ist das so korrekt in PB oder liegt hier der Fehler?
3.Frage: Ist es in Prospeed richtig das man wie du im grunde Copyextbmp (%hwnd,0,0,800,400,LoadExtImage (Hintergrund.jpg),0,0,0) sagen kann?
Also wenn alle drei Fragen mit Ja zu beantworten sind, dann hab ich auch keinen blassen.
Naja, vielleicht hilft es ja trotzdem.
iF |
|
|
| |
|
|
|
| Hallo,
direkt helfen kann ich leider auch nicht. Allerdings hat Heinz Brill für meine Listview.dll (die ja auch mit MASM32 programmiert ist) einige Quellcodes geschrieben und eine PureBasic Inc-Datei. Lad dir das doch mal runter und versuche anhand dieser Codes deinen Fehler zu finden. Ist sicher nur eine Kleinigkeit !
Gruß, Frank |
|
|
| |
|
|
|
| Danke ich habe den Feheler gefunden WindowsID() gibt noch nicht das endgültige Handle zurück denn richtig geht das so:
windowDC = GetDC_(windowID)
So funktioniert es dann.
PEACE
NY |
|
|
| |
|
|
|
| Hi,
wenn du mir ein paar PureBasic-ProSpeed Demos (z.B. Bitmaps, Sprite und FX) plus Inc zur Verfügung stellst, erhälst du eine Gratisregistrierung !
Gruß, Frank |
|
|
| |
|
|
|
pe-bier | hallo, welche pure-basic-version ist das, mit der du arbeitest. ist ja eine interessante sache. mfg pebisoft |
|
|
| |
|
|