Français
Source/ Codesnippets

Prozess Fil

 
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
Als Timer.prf speichern und kompilieren !
 $H windows.ph

If %parCount > 0

    Declare WND&
    Var X& = 0
    WND& = Val(Par$(2))

    whileloop 0,1000000

        If X& = 0

            UseCursor 0
            X& = 1

        Endif

        ~InvalidateRect(wnd&,0,0)
        SetText Wnd&,Str$(&Loop)
        Sleep 10

    endwhile

Endif


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

 
28.03.2008  
 



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.
 
28.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.

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éparation
mem-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éparation
mem-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

4 kB
Hochgeladen:29.03.2008
Downloadcounter148
Download
 
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.
 
29.03.2008  
 




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
Declare hFileMap&[18]
hFileMap[0]& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName1$))
...
hFileMap[17]& = ~OpenFileMapping(~FILE_MAP_ALL_ACCESS, 0, @Addr(FileMapName18$))pre>

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
Viellen Dank.
MfG
Andreas
 
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éparation
mem-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 Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.552 Views

Untitledvor 0 min.
H.Brill24.05.2020
Ernst12.05.2014
Peter Max Müller21.08.2013
Michael Borowiak19.07.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie