|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 18.03.2017, 22:08 Titel: |
|
|
Hier holt sich Volta ein Ressourcen-Icon her (Variante 2); vielleicht hilft das schon mal für die Idee, wie man allgemein auf die Ressourcen zugreifen kann. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
UEZ
Anmeldungsdatum: 24.06.2016 Beiträge: 129 Wohnort: Opel Stadt
|
Verfasst am: 19.03.2017, 03:08 Titel: |
|
|
So funktioniert's bei mir:
Code: |
Sub _GDIPlus_BitmapCreateFromResource(ByRef hBitmap As Any Ptr, sResourceName As String)
Dim hResource As HANDLE
Dim hInstance As HINSTANCE
Dim hResLoad As HGLOBAL
Dim hHBitmapRes As HBITMAP
Dim hStream As LPSTREAM
Dim iSize As Long
Dim As Any Ptr hMemory, pMemory
hInstance = GetModuleHandle(Null)
hResource = FindResource(hInstance, sResourceName, RT_RCDATA)
iSize = SizeofResource(hInstance, hResource)
hResLoad = LoadResource(hInstance, hResource)
LockResource(hResLoad)
FreeLibrary(hInstance)
hMemory = GlobalAlloc(GMEM_MOVEABLE, iSize)
pMemory = GlobalLock(hMemory)
RtlMoveMemory(pMemory, hResLoad, iSize)
GlobalUnlock(hMemory)
CreateStreamOnHGlobal(hMemory, 0, @hStream)
GdipCreateBitmapFromStream(hStream, @hBitmap)
IUnknown_Release(hStream)
End Sub
|
Ich werde noch den Code für "GDI+ Rotating Earth" hier https://forum.qbasic.at/viewtopic.php?p=108748#108723 gleich aktualisieren. _________________ Gruß,
UEZ |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 19.03.2017, 14:37 Titel: |
|
|
Nur der Vollständigkeit halber:
Ein Konstrukt wie Code: | Dim Shared As String __Earthclouds_600x300png = Chr(&h89, &h50, &h4E, &h47, &h0D, &h0A, &h1A, &h0A, &h00, &h00, &h00, &h0D, &h49, &h48, &h44, &h52, &h00, &h00, &h02, &h58, &h00, &h00, &h01, &h2C, &h08, &h04, &h00, &h00, &h00, &hB5, &h34, &h05) _
& Chr(&h1D, &h00, &h03, &hA5, &h6B, &h49, &h44, &h41, &h54, &h78, &h5E, &hEC, &hBC, &h07, &h90, &h6C, &hC7, &h75, &hA6, &hF9, &h9D, &hBC, &hA6, &h6E, &hF9, &hEE, &h6A, &h6F, &h5E, &hF7, &hF3, &h0E) _
& Chr(&h0F, &hC0, &h83, &h77, &h04, &h44, &hD0, &h89, &h23, &h5A, &h88, &h02, &hA5, &h21, &h35, &h14, &h9D, &h76, &h39, &hE2, &h6A, &hA5, &hD5, &hC8, &hCC, &h6E, &h84, &hB4, &h9A, &h1D, &h45, &hEC) _
... | funktioniert in diesem Fall nicht, weil beim Zeilenverlängern mit Unterstrich nach ca. 15000 Bytes Schluß ist. Der Compiler bricht den Vorgang ohne Fehlermeldung ab.
__Earthclouds_600x300png kann auch nicht als Konstante definiert werden, da in einem solchen String keine Nullbytes erlaubt sind.
Was hingegen funktioniert, ist folgendes: Code: | Dim Shared As String __Earthclouds_600x300png
__Earthclouds_600x300png += Chr(&h89, &h50, &h4E, &h47, &h0D, &h0A, &h1A, &h0A, &h00, &h00, &h00, &h0D, &h49, &h48, &h44, &h52, &h00, &h00, &h02, &h58, &h00, &h00, &h01, &h2C, &h08, &h04, &h00, &h00, &h00, &hB5, &h34, &h05)
__Earthclouds_600x300png += Chr(&h1D, &h00, &h03, &hA5, &h6B, &h49, &h44, &h41, &h54, &h78, &h5E, &hEC, &hBC, &h07, &h90, &h6C, &hC7, &h75, &hA6, &hF9, &h9D, &hBC, &hA6, &h6E, &hF9, &hEE, &h6A, &h6F, &h5E, &hF7, &hF3, &h0E)
__Earthclouds_600x300png += Chr(&h0F, &hC0, &h83, &h77, &h04, &h44, &hD0, &h89, &h23, &h5A, &h88, &h02, &hA5, &h21, &h35, &h14, &h9D, &h76, &h39, &hE2, &h6A, &hA5, &hD5, &hC8, &hCC, &h6E, &h84, &hB4, &h9A, &h1D, &h45, &hEC)
... | Ob das jetzt praktischer ist als DATA - Zeilen oder eine Ressource, sei mal dahingestellt.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.03.2017, 16:11 Titel: |
|
|
Teurer ist es auf jeden Fall, wenn man bedenkt dass da mehrere Male Heapspeicher für einen wachsenden String alloziert werden muss (obwohl ja von Anfang an klar ist wie groß die Daten sein werden). _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
|
|
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.
|
|