| |
|
|
- Seite 1 - |
|
Claus Santa | XPIA: No External DLL! Hier noch kleine Veränderungs-Tips... Ansonsten ist XPIA gut. Assembly direkt codieren und nicht uber DLL, denn CALL funktion ist SCHNELLER!
1. Vorteil: ReverseEnginiering mit DLLs ist Kinderleicht, was schlecht ist für Datenverschlüsselung. ;(
2. Vorteil: Direktes einbinden in sourcecode, wie:
if getfocus( hb_MakeSomting& ) whileloop 10 print your cpu said: +AMSMcall MeineASMproc, MyText, ... ) endwhile
3. Vorteil: Rückgabe von 0-Terminated Strings ist möglich [!]. Dann ginge ja auch das:
print AssemblyFunk() retruns: > +string( AssemblyFunk#, 0 ) +<
4. Vorteil: Ein weiterer Vorteil ist dann auch externe Module handling (wie: PLUGIN-MODULES) -> MORE IMPLIMENTATIONS. ;)
blockread( #1, ExternalModule#, 0, getfilesize( #1 ) ) ... call( ExternalModule# ) -> call_addr = addr( ExternalModule# )
5. Vorteil: Objekt Orientiertes Assembling - wichtig für MS Foundation Classes!
ASMcode$ contains suff of MemoryAddress# class A = ASMcode$[ SIZE ], ....
AObject# ist ein Objekt der Klasse A (in diesem Besipiel) call( AObject#, ... )
Syntax-Vorschlag:
Bitte nicht über Parameters, da schlecht/verwirrend für alle ANFÄNGER! Es soll ganz PROFAN (einfach?) bleiben!
--- ROOT SOURCE --- ASMproc WhatEverItMakes( params ) return ? ASMendproc
ASMcall( WhatEverItMakes, [params..] )
--- PATCHED SOURCE --- on app init dim WhatEverItMakes#, (SizeOfObj) byte WhatEverItMakes#, 0 = ...code source...
somewhere in your app call( WhatEverItMakes# )
on uninit dispose WhatEverItMakes#
--- appendix --- Ich hab eine Seite in Deutsch mit OpCodes gleich beigefügt - BESSER ALS MEIN DEUTSCH!. ;/
Genereller BinaryCode: offsetdescription +1 byteoperation code +?operands ->byte = +1 ->single word = +1 ->double word = +1 ->quard word = +1
Die Struktur sollte dann so aussehen für eine ASM-Funktion (e.g. WhatEverItMakes#):
[ on call ] offsetvalue/datacontentasm code +1$E9buffer skip jumpjmp +4?? ?? ?? ??WhatEverItMakes# + RetrunSize(WhatEverItMakes# + RetrunSize) +(RetSz-Offs)$90reserved data buffernop +??...your stuff here......
[ on return ] offsetvalue/datacontentasm code +RetSz?WhatEverItMakes# + RetrunSize [return data] ( Habe fleisig im Deutschprachigen Chats geübt. Hoffe es ist lesbar... [thx2sabine*] ) |
|
|
| Snoozel, [[StA/oXr]] // life is just'n bugfree, cos coding is life | 30.10.2005 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
Claus Santa | ( Damn good! ) Habe vielen Dank!! |
|
|
| Snoozel, [[StA/oXr]] // life is just'n bugfree, cos coding is life | 18.11.2005 ▲ |
|
|
|
|
Michael Dell | Hallo Frank,
die neue Parameterübergabe kommt echt gut! Da bleiben kaum noch Wünche offen, einen hab ich aber noch. Manchmal werden spezielle Funktionen nur zur internen Anwendung benötigt und sollten also nicht Exportiert werden.
Ist es möglich einen Schalter einzubauen der XPIA sagt das eine Funktion nicht in die Export- Tabelle gehört? Bislang mach ich das ja von Hand aber es wär schön wenns auch Automatisch ginge etwa in der Art:
AsmStart Test (p1&,p2&) I I steht hier natürlich für Intern. |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 22.11.2005 ▲ |
|
|
|
| |
|
- Seite 2 - |
|
|
Frank Abbing | Hi Michael,
gute Idee! Das bau ich bestimmt noch ein. Dann musst du nicht mehr manuell die Def-Datei editieren. Zunächst ist aber erst die Listview.dll dran. Danach dann.
|
|
|
| |
|
|
|
Michael Dell | Danke!!! (hüpfel) |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 23.11.2005 ▲ |
|
|
|
|
Frank Abbing | Hallo Michael,
hab deinen Wunsch gerade eingebaut. Steht vor dem Funktionsnamen ein Sternchen, dann bleibt die Funktion intern. Sie erscheint nicht in der Def-Datei und auch nicht im vom XPIA generierten Profancode als External. Nur andere Funktionen der Dll können mit Call oder dem Macro Scall darauf zugreifen. Ein Beispiel: KompilierenMarkierenSeparieren Ich schicks dir mal zum Testen rüber. Für alle anderen ist die Erweiterung in der nächsten XPIA-Version drin. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Michael Dell | Hi,
@Frank: Funzt prima, Danke
@iF: Hatte ich doch glatt übersehn. Ähem, nach nem kleinen Test stell ich fest et läuft nich, vielleicht spinn ich ich ja aber die Funktion(en) wird Exportiert und im Programm auch Definiert (External(...) |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 01.12.2005 ▲ |
|
|
|
|
Frank Abbing | @iF: Davon wusste ich bisher nichts, sorry. Heisst das, du hattest mit XPSE deinerseits schon für nur interne Funktionen gesorgt?
@Michael: Der Stern * funktioniert, das Noexport nicht, richtig? |
|
|
| |
|
|
|
Michael Dell | Ja, genau so isses Frank! Das Sternschen funktioniert ganz Prima!!! |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 01.12.2005 ▲ |
|
|
|
|
Frank Abbing | |
|
| |
|
|
|
Melanie Brayer | Okey, 1:0 für den Mann. Es ist ein wenig gewöhnungsbedürftig, aber Klasse... Best wishes fly on my trees, damn well, guy! |
|
|
| mele (¯`·.¸¸.{ WinXP Pro, XProfan9, XPIA }.¸¸.·´¯)
<Bugs zählen ist besser als Schafe zählen, da der Computer nur so schlau ist wie der der Mensch der ihn bedient.> | 01.12.2005 ▲ |
|
|
|
|
| @Frank: Es ging dabei um den Unitsupport - einfach büdde kurz die XPSEHilfe unter Unitsupport anschauen.
Eine einheitliche Syntax - so meinte ich - wäre vielleicht stärker durchzusetzen.
Salve. |
|
|
| |
|
|