| |
|
|
![: 15.05.2009](.././../../i/a/noavatar.gif) | Welche Register necesario hier gesichert voluntad. Oder se el de Xpia4 o XProfan übernommen el richtige Sichern de Registern?
mfg KompilierenMarcaSeparación $MAKE CLE
$H Windows.ph
Declare hwin&,x&,y&,f&,hdcwin&
Window 20,20-200,200
hWin& = Create(Window, %hWnd, Test, 250, 20, 650,500)
hDCWin& = ~GetWindowDC(hWin&)
If 0
AsmStart pset
Parameters hdcwin&,x&,y&,f&
mov ecx,para1
mov eax,para2
mov ebx,para3
mov edi,para4
invoke SetPixel,ecx,eax,ebx,edi
AsmEnd
EndIf
whileloop 0,100,1
x&=&loop
y&=&loop
f&=$ff0000
Call(GetXpiaProcAddress(XpiaModule&,pset),hdcwin&,x&,y&,f&)
endwhile
WaitInput
End
|
|
|
| |
|
|
|
![Frank Abbing: 15.05.2009](.././../../i/a/noavatar.gif) Frank Abbing | Quasi jede API verändert el Register. Wenn du el Daten después de el API otra vez benutzen willst, musst du ellos vorher en el Stack pushen y später otra vez runternehmen. Oder Variables uso. Welche Register una API benutzt, es siempre verschieden. Usted puede auch nie bastante sicher ser, que un Register no verändert se. Das kann se en nächsten Betriebssystem ya geändert haben. Das hier va de paso auch: KompilierenMarcaSeparación |
|
|
| |
|
|
|
![: 15.05.2009](.././../../i/a/noavatar.gif) | Jup,danke.
Was macht el Profano2Cpp-Solución?
mfg |
|
|
| |
|
|
|
![Sebastian König: 15.05.2009](.././../../i/a/95394891549b7cb32600d3.png) Sebastian König | 2peter Bierbach, Beitrag=52367, Zeitpunkt=15.05.2009
Was macht el Profano2Cpp-Solución?
Franco ha me vorhin erklärt, qué se en XPIA geändert ha. Yo voluntad entonces demnächst mein Plug-In daran adaptar. Kann aber algo dauern, como Yo a Tiempo muy con otro Dingen beschäftigt bin...
MfG
Sebastian |
|
|
| |
|
|
|
![: 15.05.2009](.././../../i/a/noavatar.gif) | Jup, alles klar.
El erstellten Dll de Xpia4 laufen con el Profano2Cpp wunderbar.
Posesiones ahora veces 2 Exe erstellt con XProfan. Einmal con Asmstart/Asmend y una vez con el oben erstellten Dll.
Mit Asmstart/Asmend 10200 Zeiteinheiten y el gleiche con el Dll 4550 Zeiteinheiten. El Profano2Cpp se ejecuta a Tiempo sólo el Xpia4-Dll y braucht 4100 Zeiteinheiten.
Mit Dll : KompilierenMarcaSeparación $H Windows.ph
DEF createpen(3) ! asm_grafik1.dll,createpen
DEF lineto(3) ! asm_grafik1.dll,lineto
DEF movetoex(3) ! asm_grafik1.dll,movetoex
DEF pset(4) ! asm_grafik1.dll,pset
Declare hwin&,x&,y&,f&,hdcwin&,pstyle&,pwidth&,pcolor&,mypen&,test%
Window 20,20-200,200
hWin& = Create(Window, %hWnd, Test, 250, 20, 650,500)
hDCWin& = ~GetWindowDC(hWin&)
pstyle&=3
pwidth&=0
pcolor&=$ff0000
mypen&=createpen(pstyle&,pwidth&,pcolor&)
~SelectObject( hdcwin&, mypen& )
test%=&GetTickCount
whileloop 1,10000,1
x&=200
y&=200
movetoex(hdcwin&,x&,y&)
x&=400
y&=40
lineto(hdcwin&,x&,y&)
endwhile
Print Str$(Int(&GetTickCount-test%))
WaitInput
End
Ohne Dll: KompilierenMarcaSeparación $MAKE CLEI
$H Windows.ph
Declarar hwin&,x&,y&,f&,hdcwin&,pstyle&,pwidth&,pcolor&,mypen&,test%
Ventana 20,20-200,200
hWin& = Crear(Ventana, %hWnd, Test, 250, 20, 650,500)
hDCWin& = ~GetWindowDC(hWin&)
If 0
AsmStart createpen
Parámetros pstyle&,pwidth&,pcolor&
invoke CreatePen,para1,para2,para3
AsmEnd(mypen&)
AsmStart movetoex
Parámetros hdcwin&,x&,y&
invoke MoveToEx,para1,para2,para3,0
AsmEnd
AsmStart pset
Parámetros hdcwin&,x&,y&,f&
invoke SetPixel,para1,para2,para3,para4
AsmEnd
AsmStart lineto
Parámetros hdcwin&,x&,y&
invoke LineTo,para1,para2,para3
AsmEnd
EndIf
pstyle&=3
pwidth&=0
pcolor&=$ff0000
mypen&=Call(GetXpiaProcAddress(XpiaModule&,createpen),pstyle&,pwidth&,pcolor&)
~Seleccionar objeto( hdcwin&, mypen& )
test%=&GetTickCount
whileloop 1,10000,1
x&=200
y&=200
Call(GetXpiaProcAddress(XpiaModule&,movetoex),hdcwin&,x&,y&)
x&=400
y&=40
Call(GetXpiaProcAddress(XpiaModule&,lineto),hdcwin&,x&,y&)
endwhile
Imprimir Str$(Int(&GetTickCount-test%))
WaitInput
End
mfg |
![](/intl/i/dw.gif) |
|
| |
|
|
|
![Sebastian König: 15.05.2009](.././../../i/a/95394891549b7cb32600d3.png) Sebastian König | Ist el ahora sólo una Ejemplo oder por qué kapselt du esta einfachen API-Aufrufe en DLL-Características? Yo mi, una einfaches
DEF SetPixel(3) !GDI32,SetPixel usw.
es doch sicher el effizienteste Solución...
MfG
Sebastian |
|
|
| |
|
|
|
![: 15.05.2009](.././../../i/a/noavatar.gif) | es doch sicher el effizienteste Solución...
Wird vom Tool, welches en Xpia4 con esta es, así angefertigt para el Aufruf.
Ist el ahora sólo una Ejemplo oder por qué kapselt du esta einfachen API-Aufrufe en DLL-Características?
El Routinen fueron veces con invoke encima Xpia4 aufgerufen. Ist una Funktionstest.
mfg |
|
|
| |
|
|
|
![Frank Abbing: 16.05.2009](.././../../i/a/noavatar.gif) Frank Abbing |
es doch sicher el effizienteste Solución...
El effizienteste Solución es wohl, auch el Bucle en ASM a programa. ![](.././../../i/s/__upl_ext_1111498551.gif) |
|
|
| |
|
|
|
![: 16.05.2009](.././../../i/a/noavatar.gif) | El effizienteste Solución es wohl, auch el Bucle en ASM a programa.
El Scheife selber es con Profano2Cpp ya una Blitz, wo lo sí ahora wunderbar encima el Aufruf de Xpia4 se ejecuta.
Yo quería sólo veces el wesentliche Testen.
mfg |
|
|
| |
|
|
|
![Sebastian König: 16.05.2009](.././../../i/a/95394891549b7cb32600d3.png) Sebastian König | 2peter Bierbach, Beitrag=52377, Zeitpunkt=16.05.2009
El effizienteste Solución es wohl, auch el Bucle en ASM a programa.
El Scheife selber es con Profano2Cpp ya una Blitz, wo lo sí ahora wunderbar encima el Aufruf de Xpia4 se ejecuta.
Yo quería sólo veces el wesentliche Testen.
Mir ging lo ahora sólo por lo tanto, dass uno einfache API-Características auch direkt con DEF o. Externo() uso kann - una Kapselung en una ASM-Block bringt sólo zusätzlichen Overhead con se...
MfG
Sebastian |
|
|
| |
|
|