Deutsch
Includes

XDATA - Includes für XProfan 10

 
XDATA - Includes für XProfan 10 und höher
Copyright 2006 by Thomas (ts-soft) Schulz

Echtes Compilieren mit XProfan

Dieses Paket besteht aus 2 Include-Dateien, Beispielen sowie dem GoLink Linker by Jeremy Gordon (https://www.jorgon.freeserve.co.uk/)

Mithilfe dieses Paketes können compilierte Windows-Resourcen (*.res) in reinem XProfan compiliert werden. Diese können Mithilfe des ResHackers
einer Profan-Runtime hinzugefügt werden, bzw. zu einer DLL gelinkt werden (hierfür wurde der GoLink Linker beigefügt, ResHacker nicht im Paket)

Desweiteren können diese Resourcen mit der 2ten Include-Datei leicht in XProfan-Programmen genutzt werden.

Die Funktionalität beschränkt sich auf benutzerdefinierte Resourcen auch als RCDATA bekannt (jede Art von Datei, Exe, Dll, BMP, Txt, Wav usw. möglich)

[size=16]Funktionsbeschreibung XDATA_Compiler.inc:[/size]

XDATA_Create(FileName$) Dateiname ggfls. mit Pfad, als Dateiextension sollte *.res verwendet werden (wird nicht geprüft)
Diese Funktion erstellte eine neue Resourcedatei (evtl. vorhandene gleichnamige Datei wird gelöscht), mit den erforderlichem Dateikennungen
Ergebnis: Filehandle, welche für die weiteren Operationen benötigt wird.

XDATA_Open(FileName$)
Diese Funktion öffnet eine bereits erstellte *.res (mit diesen Routinen oder anderem Resource-Compiler) und setzt den Dateizeiger ans Ende,
um weitere Resourcen hinzuzufügen.
Ergebnis: Filehandle, welche für die weiteren Operationen benötigt wird.

XDATA_Close(Filehandle&)
Diese Funktion schließt die Resourcen-Datei. Ist unbedingt nach Beendigung des Hinzufügens auszuführen!

XDATA_Add(Filehandle&, FileName$, Nr&)
Diese Funktion fügt die Datei FileName$ als Resource mit der Nummer Nr& der Resourcen-Datei hinzu.
Nr& von 1 - 32767, jede Nr darf nur einmal mit diesen Routinen hinzugefügt werden (überschreiben nicht möglich)

XDATA_Link(FileName$)
Diese Funktion linkt die übergebene Resource-Datei FileName$ mithilfe von GoLink zu einer DLL
Der Pfad zur GoLink.exe kann im Kopf dieser Include festgelegt werden, falls sich GoLink.exe nicht im Programmpfad befindet!

[size=16]Funktionsbeschreibung XDATA_Functions.inc:[/size]
XDATA_Get(ResNr&, hModule&) hModule& ist Optional. Bei fehlen wird die Resource in der Exe gesucht
Diese Funktion lädt die Resource mit der Nummer ResNr& in den Speicher. Die größe kann unmittelbar nach Aufruf dieser Funktion
aus der globalen Variable XDATA_Size& ermittelt werden. (Einer neuen Variable zuordnen, da diese bei jedem weiteren laden von Resourcen
überschrieben wird.
Ergebnis: Speicheradresse der geladenen Resource, zum freigeben, diese an XDATA_Free() übergeben!

XDATA_Free(hRes&)
gibt die geladenen Resource wieder frei

XDATA_Save(ResNr&, FileName$, hModule&) hModule& ist Optional
Speichert ResNr& als Datei unter FileName$

XDATA_CatchBMP(ResNr&, hModule&) hModule& ist Optional
Lädt die Resource und erstellte ein ImageObjekt daraus, welches mit DrawPic und DrawSizedPic genutzt werden kann.
Ergebnis: hPic&, welches am Ende mit DeleteObject wieder freizugeben ist.

XDATA_PlaySound(ResNr&, Modus&, hModule&) hModule& ist Optional
Spielt eine als Resource enthaltene Wav-Datei ab. Modus entspricht dem Spielmodus von PlaySound

Was man damit alles anstellen kann, überlasse ich eurer Phantasie (z.B. SKControll.dll in Prfrun32.exe und Mithilfe von MemoryModule nutzen )

Gruß
Thomas

Feedback wie immer erwünscht

199 kB
Kurzbeschreibung: Version 1.1
Hochgeladen:30.12.2006
Ladeanzahl266
Herunterladen
 
29.12.2006  
 



Update auf Version 1.1

+ Fehler mit einer Variablen behoben.
+ Feherbehandlung in XDATA_Compiler.inc verbessert
! Umbenannt XDATA_Link zu XDATA_LinkToDLL
+ XDATA_LinkToExe

Mithilfe der ResHackers, den Ihr auf der Profan-CD oder im Internet findet, können jetzt die Resourcen direkt in die Runtime gelinkt werden, ohne das der ResHacker extra aufgerufen wird. Ich denke mal, das sollte den Umgang mit benutzerdefinierten Resourcen erheblich erleichtern.
Ein Script erzeugt die Resourcen und linkt diese zur Runtime oder zu einer DLL, je nach Wunsch

Gruß
Thomas
 
30.12.2006  
 



Wow - ich wollte die Ressourcengeschichte auch über Kompilerschalter des xpse regeln - man legt also im jeweiligen Source fest welche Ressourcen wie verarbeitet oder angehangen werden sollen.

XData wäre doch perfekt hierfür oder?
Wie müsste ich vorgehen?
 
30.12.2006  
 



@iF
Du kannst nur diesen einen Typen von Resourcen herstellen, bei den Standard-Resourcen ist der Header etwas komplizierter. Das kannste natürlich per XPSE automatisieren. Der Resourcentyp X_DATA (XProfan-Data) sollte nur von dieser Inc. kommen, Standardname ist RCData

Mußt natürlich sicherstellen, das ResHacker bzw. GoLink gefunden werden, diese durch Profan-Code zu ersetzen ist mir bisher nicht geglückt

Gruß
Thomas
 
30.12.2006  
 



Ok dann warte ich...
 
31.12.2006  
 



iF
Ok dann warte ich...


Dieses Jahr wird wahrscheinlich nicht reichen
 
01.01.2007  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.291 Betrachtungen

Unbenanntvor 0 min.
Gast.081512.09.2024
Member 862464109.04.2024
Georg Teles02.01.2024
RudiB.23.04.2020
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

unbekannt (4x)
iF (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie