| |
|
|
Michael Dell | Hi,
following code created in the first step a 100Mb large File (first Fortschrittsbalken), thereafter becomes The File through of/ one small DLL (on zlib Base) gezippt (zweiter Fortschrittsbalken).
About a CallBack- function becomes the second Fortschrittsbalken angesteuert, it'll the into memory eingelesene worth on The CallBack- function transfer (Endwert corresponds to the Originalgröße the File).
In Profan runs the very well, still over Profan2Cpp (v1.49d) disappears second Fortschrittsbalken circa short hereon again at the beginning To attend, apiece larger The File so more frequently repeatedly itself the. CompileMarkSeparationDef PackRes(3) External("UP.DLL","ComprFile",&(1),&(2),&(3))
Def UnPackRes(2) External("UP.DLL","DecomprFile",&(1),&(2))
Def GSC(1) !"KERNEL32.DLL","GetSysColor"
Declare DATA#,CSID_Progre&,CDRFID_Progre&,Kfs&,DatNam1$,DatNam2$,xc&,Wert&
Proc cDRFStat
Parameters Anz&
SendMessage(CDRFID_Progre&,$0402,Anz&,0)
EndProc
Proc PackStat
Parameters PS_Quelle&
SendMessage(CSID_Progre&,$0402,Int((PS_Quelle& * 100) / Kfs&),0)
Return 0
EndProc
Proc CreateStatusInfoDlg
WindowStyle 528
Window ((%MaxX - 200) / 2),((%MaxY - 114) / 2)-200,114
CDRFID_Progre& = Control("msctls_progress32","",$50000001,20,18,160,24,%HWnd,9000,%hinstance,$010000)
CSID_Progre& = Control("msctls_progress32","",$50000001,20,52,160,24,%HWnd,9001,%hinstance,$010000)
SendMessage(CDRFID_Progre&,$0402,0,0)
EndProc
Proc KillInfoDlg
SetWindowPos %HWnd = (%MaxX + 10),0-200,114;-1
EndProc
CreateStatusInfoDlg()
DatNam1$ = "TEST.UDR"
DatNam2$ = "TEST.ZDR"
Wert& = (1024000 * 100)
Dim DATA#,((Wert&/100)+1)
Clear DATA#
String DATA#,0 = MkStr$("Z",(Wert&/100))
Assign #99,DatNam1$
OpenRW #99
WhileLoop 1,100,1
BlockWrite #99,DATA#,0,(Wert&/100)
cDRFStat(&Loop)
EndWhile
CloseRW #99
Dispose DATA#
Kfs& = FileSize(DatNam1$)
PackRes(Addr(DatNam1$),Addr(DatNam2$),ProcAddr("PackStat", 1))
Sleep 2000
KillInfoDlg()
ef='./../../function-references/XProfan/end/'>End
here give The benötigte DLL: [...]
in a what there expires, Perhaps is the too only me so (128Mb RAM) |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 08/29/05 ▲ |
|
|
|
|
| the smell to one Überlauf - Perhaps has Roland somewhere what as unsigned declared where Sebastian of signed ausgeht. time see what Sebastian moreover says... |
|
|
| |
|
|
|
Sebastian König | Hi,
[quote:21a53668e4]the smell to one Überlauf - Perhaps has Roland somewhere what as unsigned declared where Sebastian of signed ausgeht. time see what Sebastian moreover says...[/quote:21a53668e4] something like in the manner suspect so did i... though is sowohl with XProfan, as well as with Profan2Cpp everything signed. It can means only his, that C++ whom expression something differently auswertet as XProfan...
I can but a einfachen Workaround offer simply first through Kfs& share and then time 100 take:
Sendmessage(Csid_progre&,$0402,Int((Ps_quelle& / Kfs&) * 100),0)
so funktionierts by me too with Profan2Cpp correctly.
MfG
Sebastian |
|
|
| Windows XP, XProfan/Profan² 4.5 bis 11 Profan2Cpp-Homepage: [...] Alte Profan²-Seite: [...] | 08/29/05 ▲ |
|
|
|
|
Sebastian König | yet what Weird: If one whom Slash by a Backslash, means Integer-Division, supplant, functions it too with XProfan not any more correctly (same Error...). probably is it on the sichersten, The API-function MulDiv() To use:
[quote:63db746ded]The MulDiv function multiplies two 32-bit values and then divides the 64-bit result by a third 32-bit value. The return value is rounded up or down to the nearest integer.[/quote:63db746ded] |
|
|
| Windows XP, XProfan/Profan² 4.5 bis 11 Profan2Cpp-Homepage: [...] Alte Profan²-Seite: [...] | 08/29/05 ▲ |
|
|
|
|
Michael Dell | lovely, so runs! thanks!!! |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 08/29/05 ▲ |
|
|
|