Source/ Codesnippets | | | |  | de Andreas Miethe: Erklärung en supplément. Es volonté 2 Datein nécessaire, Einmal cela eigentliche Programme, zum anderen cela quoi den Boucle contient. qui Boucle-Programme muss kompiliert son. cela Hauptprogramm startet sich simple selber avec Parametern (Boucle-Programme) récente. cela Ganze funktioniert seulement si beide Programme kompiliert sommes !
Ist peut-être encore verbesserungswürdig, funktioniert mais erstmal !
Boucle-Programme ( comme timer.prf Sauver et kompilieren ) KompilierenMarqueSéparation Hauptprogramm KompilierenMarqueSéparation#########################################
Fil starten, pausieren laisser, finissons
Andreas Miethe 28.03.2008
#########################################
BEACHTE : starten comme EXE ou bien STRG+F8
#########################################
$IFDEF Compiler
$H Windows.ph
$H Structs.ph
$H Messages.ph
Struct StartupInfo = ~STARTUPINFO
Struct ProcessInfo = ~PROCESS_INFORMATION
Struct MEMORYSTATUS = ~MEMORYSTATUS
Var Ende& = 0
cls ~GetSysColor(~COLOR_BTNFACE)
Déclarer ProcessHandle&,Processhandle1&
Déclarer ThreadHandle&,Threadhandle1&
Proc CreateThread
Paramètres Param$
Déclarer StartupInfo#,CommandString$,ProcessInfo#
Déclarer Retval&,Processhandle&,ThreadHandle&
CommandString$ = Par$(0) + + Param$
Faible StartupInfo#,StartupInfo
Claire StartupInfo#
StartupInfo#.cb& = SizeOf(StartupInfo#)
Faible ProcessInfo#,ProcessInfo
Claire ProcessInfo#
~CreateProcess(0,Addr(CommandString$),0,0,0,0,0,0,StartupInfo#,ProcessInfo#)
ProcessHandle& = ProcessInfo#.hProcess&
ThreadHandle& = ProcessInfo#.hThread&
Dispose StartupInfo#
Dispose ProcessInfo#
Retour Str$(ProcessHandle&)+,+Str$(ThreadHandle&)
ENDPROC
Proc TerminateThread
Paramètres ProcessHandle&
Déclarer ExitCode&
~GetExitCodeProcess(Processhandle&,Addr(ExitCode&))
~TerminateProcess(Processhandle&,ExitCode&)
ENDPROC
Proc PauseThread
Paramètres Threadhandle&
~SuspendThread(Threadhandle&)
ENDPROC
Proc ResumeThread
Paramètres Threadhandle&
~ResumeThread(Threadhandle&)
ENDPROC
Var Handles$ =
Var Start& = Créer(Button,%hwnd,Start,10,10,80,24)
Var Pause& = Créer(Button,%hwnd,récréation,10,40,80,24)
Var Resume& = Créer(Button,%hwnd,continuer,10,70,80,24)
Var Terminate& = Créer(Button,%hwnd,Ende,10,100,80,24)
Var Empfang& = Créer(TEXT,%hwnd,,10,130,80,24)
SendMessage(Start&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
SendMessage(Pause&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
SendMessage(Resume&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
SendMessage(Terminate&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
SendMessage(Empfang&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
EnableWindow Pause&,0
EnableWindow Resume&,0
EnableWindow Terminate&,0
Var Statusbar& = Créer(StatusWindow,%hwnd,)
UpdateStatus(Statusbar&)
SubClass StatusBar&,1SubClassing einschalten
~SetTimer(StatusBar&,1,1000,0)Minuteur à qui Statusbar hängen
SubClass %hwnd,1SubClassing einschalten
Utilisateur Messages ~wm_close
WhileNot Ende&
Waitinput
Si Clicked(Start&)
qui Exe startet sich selber encore einmal avec Parametern
qui paramètre, qui ici erwartet wird ist un un Kompilat ( PRC-Dossier )
Handles$ = CreateThread(Minuteur.prc +str$(Empfang&))
ProcessHandle1& = Val(Substr$(Handles$,1,,))
ThreadHandle1& = Val(Substr$(Handles$,2,,))
EnableWindow Pause&,1
EnableWindow Terminate&,1
EnableWindow Start&,0
Elseif Clicked(Pause&)
PauseThread(ThreadHandle1&)
EnableWindow Pause&,0
EnableWindow Resume&,1
ElseIf Clicked(Resume&)
ResumeThread(ThreadHandle1&)
EnableWindow Pause&,1
EnableWindow Resume&,0
ElseIf Clicked(Terminate&)
EnableWindow Pause&,0
EnableWindow Resume&,0
EnableWindow Terminate&,0
EnableWindow Start&,1
TerminateThread(ProcessHandle1&)
Endif
Si %Umessage = ~wm_close
si TerminateThread() pas chez Programmende aufgerufen wird,
fonctionne cela 2.Programme plus !
TerminateThread(ProcessHandle1&)
Ende& = 1
Endif
Endwhile
SubClass StatusBar&,0
SubClass %hwnd,0
end
Proc UpdateStatus
Paramètres Statusbar&
Déclarer MemStatus#
Faible Memstatus#,MEMORYSTATUS
MemStatus#.dwLength& = SizeOf(MemStatus#)
~GlobalMemoryStatus(MemStatus#)
SetText Statusbar&,maintenant : +Time $(0)+:+Left $(Time $(1),2)+ - Speicherverbrauch : +Str$(MemStatus#.dwMemoryLoad&)+%
Dispose MemStatus#
ENDPROC
SubClassProc
Si SubClassMessage(%hwnd, ~WM_SIZE)
SetWindowPos Statusbar& = 0,0-0,0
ElseIf SubClassMessage(Statusbar&, ~WM_TIMER)
UpdateStatus(&sWnd)
Endif
ENDPROC
|
| | | | |
| |  | Dank gestackter messages de l'utilisateur peux on une simple verlustfreie Prozesskommunikation herstellen.
un d'autre Beispiel pourrait dem 2. Prozess cela Handle des Hauptfensters comme paramètre avec sur dem Weg donner - worüber ensuite qui Messages simple trop versenden wären. |
| | | | |
| |  Andreas Gaida | Hi
ou bien on verwendet gemeinsame grenier avec cela laisser sich vite et bequem grosse mengen de données entre mehreren Programmen austauschen ou bien gemeinsam nutzen.
Habe cela Beispiel dans qui Profan Aider trouvé et à mon Bedürfnisse angepast. suis Je ne sûrement si je chez qui freigabe des Mémoire alles richtig gemacht habe si pas wäre je pour une korrektur reconnaissant.
Beispiel ( seulement Master Starten ensuite Slave) : KompilierenMarqueSéparation $I mem-create.inc
initialisiert 18 2048 Byte Grosse gemeinsamme Speicher SharedBuffer1# bis SharedBuffer18#
Declare Temp1$,Bereich#,ENDE%
STRUCT shared = variable1%,variable2&,variable3!,variable4$(2033)
Dim Bereich#,shared
Bereich#.variable1% = 32768
Bereich#.variable2& = 2147483647
Bereich#.variable3! = 123.456
Bereich#.variable4$ = und noch ein weiterer test
Window 0,400-500,450
Windowtitle Master
string SharedBuffer1#,0 = das ist ein test
long SharedBuffer2#,0 = 123456789
SharedBuffer3# = Bereich#
Bereich# = SharedBuffer3#
print @String$(SharedBuffer1#,0)
print @long (SharedBuffer2#,0)
print Bereich#.variable1%
print Bereich#.variable2&
print Bereich#.variable3!
print Bereich#.variable4$
settimer 50
WHILENOT ENDE%
WAITINPUT
locate 10,1
clear SharedBuffer3#
Bereich#.variable2& = &GetTickCount
Bereich#.variable4$ = @Time$(0)+:+ @Time$(1)
SharedBuffer3# = Bereich#
ENDWHILE
sharedclear Löscht die Buffer
Dispose Bereich#
KompilierenMarqueSéparation $I mem-use.inc
Stellt 18 2048 Byte Grosse gemeinsamme grenier SharedBuffer1# jusqu'à SharedBuffer18#
dem Programme trop la disposition . devons mais auparavant par mem-create.inc de une anderen
Programme erstellt worden son .
Déclarer Temp1$,Bereich#,ENDE%
STRUCT shared = variable1%,variable2&,variable3!,variable4$(2033)
Faible Bereich#,shared
Bereich#.variable1% = 32768
Bereich#.variable2& = 2147483647
Bereich#.variable3! = 123.456
Bereich#.variable4$ = et encore un weiterer test
Fenêtre 520,400-500,450
Windowtitle Slave
string SharedBuffer1#,0 = cela ist un test
long SharedBuffer2#,0 = 123456789
SharedBuffer3# = Bereich#
Bereich# = SharedBuffer3#
imprimer @String$(SharedBuffer1#,0)
imprimer @long (SharedBuffer2#,0)
imprimer Bereich#.variable1%
imprimer Bereich#.variable2&
imprimer Bereich#.variable3!
imprimer Bereich#.variable4$
settimer 50
WHILENOT ENDE%
WAITINPUT
locate 10,1
imprimer
imprimer
locate 10,1
Bereich# = SharedBuffer3#
imprimer Bereich#.variable2&
imprimer Bereich#.variable4$
ENDWHILE
KompilierenMarqueSéparationmem-create.inc
$H Windows.ph
Def &MapFileSize1 2048
Def &MapFileSize2 2048
Def &MapFileSize3 2048
Def &MapFileSize4 2048
Def &MapFileSize5 2048
Def &MapFileSize6 2048
Def &MapFileSize7 2048
Def &MapFileSize8 2048
Def &MapFileSize9 2048
Def &MapFileSize10 2048
Def &MapFileSize11 2048
Def &MapFileSize12 2048
Def &MapFileSize13 2048
Def &MapFileSize14 2048
Def &MapFileSize15 2048
Def &MapFileSize16 2048
Def &MapFileSize17 2048
Def &MapFileSize18 2048
Déclarer hFileMap1&
Déclarer hFileMap2&
Déclarer hFileMap3&
Déclarer hFileMap4&
Déclarer hFileMap5&
Déclarer hFileMap6&
Déclarer hFileMap7&
Déclarer hFileMap8&
Déclarer hFileMap9&
Déclarer hFileMap10&
Déclarer hFileMap11&
Déclarer hFileMap12&
Déclarer hFileMap13&
Déclarer hFileMap14&
Déclarer hFileMap15&
Déclarer hFileMap16&
Déclarer hFileMap17&
Déclarer hFileMap18&
Déclarer FileMapName1$
Déclarer FileMapName2$
Déclarer FileMapName3$
Déclarer FileMapName4$
Déclarer FileMapName5$
Déclarer FileMapName6$
Déclarer FileMapName7$
Déclarer FileMapName8$
Déclarer FileMapName9$
Déclarer FileMapName10$
Déclarer FileMapName11$
Déclarer FileMapName12$
Déclarer FileMapName13$
Déclarer FileMapName14$
Déclarer FileMapName15$
Déclarer FileMapName16$
Déclarer FileMapName17$
Déclarer FileMapName18$
Déclarer SharedBuffer1#, BufferAddr1& ,b& ,c&
Déclarer SharedBuffer2#, BufferAddr2&
Déclarer SharedBuffer3#, BufferAddr3&
Déclarer SharedBuffer4#, BufferAddr4&
Déclarer SharedBuffer5#, BufferAddr5&
Déclarer SharedBuffer6#, BufferAddr6&
Déclarer SharedBuffer7#, BufferAddr7&
Déclarer SharedBuffer8#, BufferAddr8&
Déclarer SharedBuffer9#, BufferAddr9&
Déclarer SharedBuffer10#, BufferAddr10&
Déclarer SharedBuffer11#, BufferAddr11&
Déclarer SharedBuffer12#, BufferAddr12&
Déclarer SharedBuffer13#, BufferAddr13&
Déclarer SharedBuffer14#, BufferAddr14&
Déclarer SharedBuffer15#, BufferAddr15&
Déclarer SharedBuffer16#, BufferAddr16&
Déclarer SharedBuffer17#, BufferAddr17&
Déclarer SharedBuffer18#, BufferAddr18&
Faible SharedBuffer1#, 2048
Faible SharedBuffer2#, 2048
Faible SharedBuffer3#, 2048
Faible SharedBuffer4#, 2048
Faible SharedBuffer5#, 2048
Faible SharedBuffer6#, 2048
Faible SharedBuffer7#, 2048
Faible SharedBuffer8#, 2048
Faible SharedBuffer9#, 2048
Faible SharedBuffer10#, 2048
Faible SharedBuffer11#, 2048
Faible SharedBuffer12#, 2048
Faible SharedBuffer13#, 2048
Faible SharedBuffer14#, 2048
Faible SharedBuffer15#, 2048
Faible SharedBuffer16#, 2048
Faible SharedBuffer17#, 2048
Faible SharedBuffer18#, 2048
BufferAddr1& = SharedBuffer1#
BufferAddr2& = SharedBuffer2#
BufferAddr3& = SharedBuffer3#
BufferAddr4& = SharedBuffer4#
BufferAddr5& = SharedBuffer5#
BufferAddr6& = SharedBuffer6#
BufferAddr7& = SharedBuffer7#
BufferAddr8& = SharedBuffer8#
BufferAddr9& = SharedBuffer9#
BufferAddr10& = SharedBuffer10#
BufferAddr11& = SharedBuffer11#
BufferAddr12& = SharedBuffer12#
BufferAddr13& = SharedBuffer13#
BufferAddr14& = SharedBuffer14#
BufferAddr15& = SharedBuffer15#
BufferAddr16& = SharedBuffer16#
BufferAddr17& = SharedBuffer17#
BufferAddr18& = SharedBuffer18#
FileMapName1$ = sharedmap1 + @Chr$(0)
FileMapName2$ = sharedmap2 + @Chr$(0)
FileMapName3$ = sharedmap3 + @Chr$(0)
FileMapName4$ = sharedmap4 + @Chr$(0)
FileMapName5$ = sharedmap5 + @Chr$(0)
FileMapName6$ = sharedmap6 + @Chr$(0)
FileMapName7$ = sharedmap7 + @Chr$(0)
FileMapName8$ = sharedmap8 + @Chr$(0)
FileMapName9$ = sharedmap9 + @Chr$(0)
FileMapName10$ = sharedmap10 + @Chr$(0)
FileMapName11$ = sharedmap11 + @Chr$(0)
FileMapName12$ = sharedmap12 + @Chr$(0)
FileMapName13$ = sharedmap13 + @Chr$(0)
FileMapName14$ = sharedmap14 + @Chr$(0)
FileMapName15$ = sharedmap15 + @Chr$(0)
FileMapName16$ = sharedmap16 + @Chr$(0)
FileMapName17$ = sharedmap17 + @Chr$(0)
FileMapName18$ = sharedmap18 + @Chr$(0)
hFileMap1& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize1, @Addr(FileMapName1$))
hFileMap2& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize2, @Addr(FileMapName2$))
hFileMap3& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize3, @Addr(FileMapName3$))
hFileMap4& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize4, @Addr(FileMapName4$))
hFileMap5& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize5, @Addr(FileMapName5$))
hFileMap6& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize6, @Addr(FileMapName6$))
hFileMap7& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize7, @Addr(FileMapName7$))
hFileMap8& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize8, @Addr(FileMapName8$))
hFileMap9& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize9, @Addr(FileMapName9$))
hFileMap10& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize10, @Addr(FileMapName10$))
hFileMap11& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize11, @Addr(FileMapName11$))
hFileMap12& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize12, @Addr(FileMapName12$))
hFileMap13& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize13, @Addr(FileMapName13$))
hFileMap14& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize14, @Addr(FileMapName14$))
hFileMap15& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize15, @Addr(FileMapName15$))
hFileMap16& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize16, @Addr(FileMapName16$))
hFileMap17& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize17, @Addr(FileMapName17$))
hFileMap18& = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,&MapFileSize18, @Addr(FileMapName18$))
hFileMap1& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName1$))
hFileMap2& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName2$))
hFileMap3& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName3$))
hFileMap4& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName4$))
hFileMap5& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName5$))
hFileMap6& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName6$))
hFileMap7& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName7$))
hFileMap8& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName8$))
hFileMap9& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName9$))
hFileMap10& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName10$))
hFileMap11& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName11$))
hFileMap12& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName12$))
hFileMap13& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName13$))
hFileMap14& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName14$))
hFileMap15& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName15$))
hFileMap16& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName16$))
hFileMap17& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName17$))
hFileMap18& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName18$))
SharedBuffer1# = ~MapViewOfFile(hFileMap1&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer2# = ~MapViewOfFile(hFileMap2&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer3# = ~MapViewOfFile(hFileMap3&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer4# = ~MapViewOfFile(hFileMap4&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer5# = ~MapViewOfFile(hFileMap5&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer6# = ~MapViewOfFile(hFileMap6&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer7# = ~MapViewOfFile(hFileMap7&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer8# = ~MapViewOfFile(hFileMap8&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer9# = ~MapViewOfFile(hFileMap9&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer10# = ~MapViewOfFile(hFileMap10&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer11# = ~MapViewOfFile(hFileMap11&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer12# = ~MapViewOfFile(hFileMap12&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer13# = ~MapViewOfFile(hFileMap13&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer14# = ~MapViewOfFile(hFileMap14&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer15# = ~MapViewOfFile(hFileMap15&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer16# = ~MapViewOfFile(hFileMap16&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer17# = ~MapViewOfFile(hFileMap17&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer18# = ~MapViewOfFile(hFileMap18&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
PROC sharedclear
SharedBuffer1# = BufferAddr1&
SharedBuffer2# = BufferAddr2&
SharedBuffer3# = BufferAddr3&
SharedBuffer4# = BufferAddr4&
SharedBuffer5# = BufferAddr5&
SharedBuffer6# = BufferAddr6&
SharedBuffer7# = BufferAddr7&
SharedBuffer8# = BufferAddr8&
SharedBuffer9# = BufferAddr9&
SharedBuffer10# = BufferAddr10&
SharedBuffer11# = BufferAddr11&
SharedBuffer12# = BufferAddr12&
SharedBuffer13# = BufferAddr13&
SharedBuffer14# = BufferAddr14&
SharedBuffer15# = BufferAddr15&
SharedBuffer16# = BufferAddr16&
SharedBuffer17# = BufferAddr17&
SharedBuffer18# = BufferAddr18&
Dispose SharedBuffer1#
Dispose SharedBuffer2#
Dispose SharedBuffer3#
Dispose SharedBuffer4#
Dispose SharedBuffer5#
Dispose SharedBuffer6#
Dispose SharedBuffer7#
Dispose SharedBuffer8#
Dispose SharedBuffer9#
Dispose SharedBuffer10#
Dispose SharedBuffer11#
Dispose SharedBuffer12#
Dispose SharedBuffer13#
Dispose SharedBuffer14#
Dispose SharedBuffer15#
Dispose SharedBuffer16#
Dispose SharedBuffer17#
Dispose SharedBuffer18#
ENDPROC
KompilierenMarqueSéparationmem-use.inc
$H Windows.ph
Def &MapFileSize1 2048
Def &MapFileSize2 2048
Def &MapFileSize3 2048
Def &MapFileSize4 2048
Def &MapFileSize5 2048
Def &MapFileSize6 2048
Def &MapFileSize7 2048
Def &MapFileSize8 2048
Def &MapFileSize9 2048
Def &MapFileSize10 2048
Def &MapFileSize11 2048
Def &MapFileSize12 2048
Def &MapFileSize13 2048
Def &MapFileSize14 2048
Def &MapFileSize15 2048
Def &MapFileSize16 2048
Def &MapFileSize17 2048
Def &MapFileSize18 2048
Déclarer hFileMap1&
Déclarer hFileMap2&
Déclarer hFileMap3&
Déclarer hFileMap4&
Déclarer hFileMap5&
Déclarer hFileMap6&
Déclarer hFileMap7&
Déclarer hFileMap8&
Déclarer hFileMap9&
Déclarer hFileMap10&
Déclarer hFileMap11&
Déclarer hFileMap12&
Déclarer hFileMap13&
Déclarer hFileMap14&
Déclarer hFileMap15&
Déclarer hFileMap16&
Déclarer hFileMap17&
Déclarer hFileMap18&
Déclarer FileMapName1$
Déclarer FileMapName2$
Déclarer FileMapName3$
Déclarer FileMapName4$
Déclarer FileMapName5$
Déclarer FileMapName6$
Déclarer FileMapName7$
Déclarer FileMapName8$
Déclarer FileMapName9$
Déclarer FileMapName10$
Déclarer FileMapName11$
Déclarer FileMapName12$
Déclarer FileMapName13$
Déclarer FileMapName14$
Déclarer FileMapName15$
Déclarer FileMapName16$
Déclarer FileMapName17$
Déclarer FileMapName18$
Déclarer SharedBuffer1#, BufferAddr1& ,b& ,c&
Déclarer SharedBuffer2#, BufferAddr2&
Déclarer SharedBuffer3#, BufferAddr3&
Déclarer SharedBuffer4#, BufferAddr4&
Déclarer SharedBuffer5#, BufferAddr5&
Déclarer SharedBuffer6#, BufferAddr6&
Déclarer SharedBuffer7#, BufferAddr7&
Déclarer SharedBuffer8#, BufferAddr8&
Déclarer SharedBuffer9#, BufferAddr9&
Déclarer SharedBuffer10#, BufferAddr10&
Déclarer SharedBuffer11#, BufferAddr11&
Déclarer SharedBuffer12#, BufferAddr12&
Déclarer SharedBuffer13#, BufferAddr13&
Déclarer SharedBuffer14#, BufferAddr14&
Déclarer SharedBuffer15#, BufferAddr15&
Déclarer SharedBuffer16#, BufferAddr16&
Déclarer SharedBuffer17#, BufferAddr17&
Déclarer SharedBuffer18#, BufferAddr18&
Faible SharedBuffer1#, 2048
Faible SharedBuffer2#, 2048
Faible SharedBuffer3#, 2048
Faible SharedBuffer4#, 2048
Faible SharedBuffer5#, 2048
Faible SharedBuffer6#, 2048
Faible SharedBuffer7#, 2048
Faible SharedBuffer8#, 2048
Faible SharedBuffer9#, 2048
Faible SharedBuffer10#, 2048
Faible SharedBuffer11#, 2048
Faible SharedBuffer12#, 2048
Faible SharedBuffer13#, 2048
Faible SharedBuffer14#, 2048
Faible SharedBuffer15#, 2048
Faible SharedBuffer16#, 2048
Faible SharedBuffer17#, 2048
Faible SharedBuffer18#, 2048
BufferAddr1& = SharedBuffer1#
BufferAddr2& = SharedBuffer2#
BufferAddr3& = SharedBuffer3#
BufferAddr4& = SharedBuffer4#
BufferAddr5& = SharedBuffer5#
BufferAddr6& = SharedBuffer6#
BufferAddr7& = SharedBuffer7#
BufferAddr8& = SharedBuffer8#
BufferAddr9& = SharedBuffer9#
BufferAddr10& = SharedBuffer10#
BufferAddr11& = SharedBuffer11#
BufferAddr12& = SharedBuffer12#
BufferAddr13& = SharedBuffer13#
BufferAddr14& = SharedBuffer14#
BufferAddr15& = SharedBuffer15#
BufferAddr16& = SharedBuffer16#
BufferAddr17& = SharedBuffer17#
BufferAddr18& = SharedBuffer18#
FileMapName1$ = sharedmap1 + @Chr$(0)
FileMapName2$ = sharedmap2 + @Chr$(0)
FileMapName3$ = sharedmap3 + @Chr$(0)
FileMapName4$ = sharedmap4 + @Chr$(0)
FileMapName5$ = sharedmap5 + @Chr$(0)
FileMapName6$ = sharedmap6 + @Chr$(0)
FileMapName7$ = sharedmap7 + @Chr$(0)
FileMapName8$ = sharedmap8 + @Chr$(0)
FileMapName9$ = sharedmap9 + @Chr$(0)
FileMapName10$ = sharedmap10 + @Chr$(0)
FileMapName11$ = sharedmap11 + @Chr$(0)
FileMapName12$ = sharedmap12 + @Chr$(0)
FileMapName13$ = sharedmap13 + @Chr$(0)
FileMapName14$ = sharedmap14 + @Chr$(0)
FileMapName15$ = sharedmap15 + @Chr$(0)
FileMapName16$ = sharedmap16 + @Chr$(0)
FileMapName17$ = sharedmap17 + @Chr$(0)
FileMapName18$ = sharedmap18 + @Chr$(0)
hFileMap1& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName1$))
hFileMap2& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName2$))
hFileMap3& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName3$))
hFileMap4& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName4$))
hFileMap5& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName5$))
hFileMap6& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName6$))
hFileMap7& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName7$))
hFileMap8& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName8$))
hFileMap9& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName9$))
hFileMap10& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName10$))
hFileMap11& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName11$))
hFileMap12& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName12$))
hFileMap13& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName13$))
hFileMap14& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName14$))
hFileMap15& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName15$))
hFileMap16& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName16$))
hFileMap17& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName17$))
hFileMap18& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName18$))
SharedBuffer1# = ~MapViewOfFile(hFileMap1&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer2# = ~MapViewOfFile(hFileMap2&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer3# = ~MapViewOfFile(hFileMap3&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer4# = ~MapViewOfFile(hFileMap4&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer5# = ~MapViewOfFile(hFileMap5&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer6# = ~MapViewOfFile(hFileMap6&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer7# = ~MapViewOfFile(hFileMap7&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer8# = ~MapViewOfFile(hFileMap8&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer9# = ~MapViewOfFile(hFileMap9&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer10# = ~MapViewOfFile(hFileMap10&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer11# = ~MapViewOfFile(hFileMap11&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer12# = ~MapViewOfFile(hFileMap12&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer13# = ~MapViewOfFile(hFileMap13&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer14# = ~MapViewOfFile(hFileMap14&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer15# = ~MapViewOfFile(hFileMap15&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer16# = ~MapViewOfFile(hFileMap16&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer17# = ~MapViewOfFile(hFileMap17&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
SharedBuffer18# = ~MapViewOfFile(hFileMap18&, ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
PROC sharedclear
SharedBuffer1# = BufferAddr1&
SharedBuffer2# = BufferAddr2&
SharedBuffer3# = BufferAddr3&
SharedBuffer4# = BufferAddr4&
SharedBuffer5# = BufferAddr5&
SharedBuffer6# = BufferAddr6&
SharedBuffer7# = BufferAddr7&
SharedBuffer8# = BufferAddr8&
SharedBuffer9# = BufferAddr9&
SharedBuffer10# = BufferAddr10&
SharedBuffer11# = BufferAddr11&
SharedBuffer12# = BufferAddr12&
SharedBuffer13# = BufferAddr13&
SharedBuffer14# = BufferAddr14&
SharedBuffer15# = BufferAddr15&
SharedBuffer16# = BufferAddr16&
SharedBuffer17# = BufferAddr17&
SharedBuffer18# = BufferAddr18&
Dispose SharedBuffer1#
Dispose SharedBuffer2#
Dispose SharedBuffer3#
Dispose SharedBuffer4#
Dispose SharedBuffer5#
Dispose SharedBuffer6#
Dispose SharedBuffer7#
Dispose SharedBuffer8#
Dispose SharedBuffer9#
Dispose SharedBuffer10#
Dispose SharedBuffer11#
Dispose SharedBuffer12#
Dispose SharedBuffer13#
Dispose SharedBuffer14#
Dispose SharedBuffer15#
Dispose SharedBuffer16#
Dispose SharedBuffer17#
Dispose SharedBuffer18#
ENDPROC
MfG Andreas |
 | | | Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 29.03.2008 ▲ |
| |
| |  | Andreas Gaida
Hi
ou bien on verwendet gemeinsame grenier avec cela laisser sich vite et bequem grosse mengen de données entre mehreren Programmen austauschen ou bien gemeinsam nutzen
...
MfG Andreas
Jupp, et cela wiederum vereinfacht qui pipe.unit erheblich. [...] 
PS: Nutze doch Arrays - qui faire den Code kompakter. |
| | | | |
| |  Andreas Gaida | comment meins Du cela avec dem Arrays? peux Du peut-être un kleines Beispiel pour liefern um mir sur qui sprünge trop aider?
MfG Andreas |
| | | Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 29.03.2008 ▲ |
| |
| |  Jörg Sellmeyer | Etwa so: KompilierenMarqueSéparation cela devrait avec den Cordes aussi so marcher et erspart Dir qui ganzen Deklarationen et tu peux qui Arrays dans einer Boucle befüllen. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 29.03.2008 ▲ |
| |
| |  Andreas Gaida | | | | Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 29.03.2008 ▲ |
| |
| |  Andreas Gaida | Dank qui inspiration de Si et des Denk Anstosses de Jörg Sellmeyer ici eh bien qui Extrem verkürzte Version avec jusque 100 Shared Buffers
Habe SharedBuffer# dans S_Bereich# umbenannt s'il te plaît qui neuen Beispiele avec qui Inc verwenden. KompilierenMarqueSéparation $I mem-create-use.inc
Declare Temp1$,Bereich#,ENDE%
STRUCT shared = variable1%,variable2&,variable3!,variable4$(2033)
Dim Bereich#,shared
Init_Shared 2048,50,MASTER Initialisiert den Shared Buffer
Bereich#.variable1% = 32768
Bereich#.variable2& = 2147483647
Bereich#.variable3! = 123.456
Bereich#.variable4$ = und noch ein weiterer test
Window 0,400-500,450
Windowtitle Master
string S_Bereich#[1],0 = das ist ein test
long S_Bereich#[2],0 = 123456789
S_Bereich#[3] = Bereich#
Bereich# = S_Bereich#[3]
print @String$(S_Bereich#[1],0)
print @long (S_Bereich#[2],0)
print Bereich#.variable1%
print Bereich#.variable2&
print Bereich#.variable3!
print Bereich#.variable4$
settimer 250
WHILENOT ENDE%
WAITINPUT
locate 10,1
clear S_Bereich#[3]
clear S_Bereich#[4]
Bereich#.variable2& = &GetTickCount
Bereich#.variable4$ = @Time$(0)+:+ @Time$(1)
S_Bereich#[3] = Bereich#
Bereich#.variable2& = 1234567890
Bereich#.variable4$ = qwertzuiopüasdfghjkl
S_Bereich#[4] = Bereich#
ENDWHILE
Clear_Shared 50 Löscht die angegebene anzahl von Buffern
Dispose Bereich#
KompilierenMarqueSéparation $I mem-create-use.inc
Déclarer Temp1$,Bereich#,ENDE%
Init_Shared 2048,50,SLAVE
STRUCT shared = variable1%,variable2&,variable3!,variable4$(2033)
Faible Bereich#,shared
Fenêtre 520,400-500,450
Windowtitle Slave
settimer 50
WHILENOT ENDE%
WAITINPUT
locate 10,1
imprimer
imprimer
locate 10,1
Bereich# = S_Bereich#[3]
imprimer Bereich#.variable2&
imprimer Bereich#.variable4$
Bereich# = S_Bereich#[4]
imprimer Bereich#.variable2&
imprimer Bereich#.variable4$
ENDWHILE
KompilierenMarqueSéparationmem-create-use.inc
$H Windows.ph
Déclarer FileMapName$[100],BufferAddr&[100],hFileMap&[100],S_Bereich#[100],MapFileSize&[100]
proc Init_Shared
Paramètres groesse&,anzahl&,modus$ Grösse des Buffers, Anzahl qui Buffer, Modus
Faible S_Bereich#[],2048
WhileLoop anzahl&
MapFileSize&[&Boucle] = groesse&
Endwhile
WhileLoop anzahl&
BufferAddr&[&Boucle] = S_Bereich#[&Boucle]
Endwhile
WhileLoop anzahl&
FileMapName$[&Boucle] = sharedmap + STR$(&Boucle) + @Chr$(0)
Endwhile
Si modus$ = MASTER chez MASTER wird qui grenier seulement erstellt
WhileLoop anzahl&
hFileMap&[&Boucle] = ~CreateFileMapping($FFFFFFFF, 0, ~PAGE_READWRITE, 0,MapFileSize&[&Boucle], @Addr(FileMapName$[&Boucle]))
Endwhile
Elseif modus$ = SLAVE
Endif
WhileLoop anzahl&
hFileMap&[&Boucle] = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName$[&Boucle]))
Endwhile
WhileLoop anzahl&
S_Bereich#[&Boucle] = ~MapViewOfFile(hFileMap&[&Boucle], ~FILE_MAP_ALL_ACCESS, 0, 0, 0)
Endwhile
ENDPROC
PROC Clear_Shared
Paramètres anzahl&
WhileLoop anzahl&
S_Bereich#[&Boucle] = BufferAddr&[&Boucle]
Endwhile
Dispose S_Bereich#[]
ENDPROC
|
| | | Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 29.03.2008 ▲ |
| |
|
Zum QuelltextOptions du sujet | 4.552 Views |
Themeninformationencet Thema hat 3 participant: |