Ga naar inhoud

vanuit Pascal 7 programma een windows programma starten.


Aanbevolen berichten

Ik heb een tijd geleden een programma geschreven in pascal waarin geen geheugen meer vrij is. Om nu een uitbreiding te kunnen maken voor dit programma wil ik een windows programma opstarten vanuit dat pascal/dos programma. Het dos programma hoeft niet te wachten op de uitvoer. Voor swapvectors is geen geheugen! Is het mogelijk om met pascal 7 een windows programma te starten zonder dat er geheugen vrij gemaakt moet worden? Aangezien ik de klant al beloofd heb dat we het zo gingen doen is dit een heel serieus probleem!
Link naar reactie
Ik ben ook niet zo blij met een uitbreiding van het pascal programma, ik moet toch regelmatig stevig nadenken van hoe was het ook al weer. Op de pagina die je tipt staan een paar interessante opties die de job zouden moeten kunnen klaren. Als het werkt laat ik het je nog even weten. Nu gebruik ik met de standaard swapvectors 50000 byte voor de aanroep en dat kan ik niet missen. Als ik hiermee 30000 byte kan terugwinnen ben ik klaar. Bedankt.
Link naar reactie
  • 2 weken later...
Inmiddels heb ik een goede oplossing m.b.v. een execute routene die geen geheugen kost. [code:1:4cb2ac164f] PROCEDURE ReallocateMemory(P : POINTER); ASSEMBLER; ASM MOV AX, PrefixSeg MOV ES, AX MOV BX, WORD PTR P+2 CMP WORD PTR P,0 JE @OK INC BX @OK: SUB BX, AX MOV AH, 4Ah INT 21h JC @X LES DI, P MOV WORD PTR HeapEnd,DI MOV WORD PTR HeapEnd+2,ES @X: END; FUNCTION EXECUTE(Name : PathStr ; Tail : STR127) : WORD; ASSEMBLER; ASM {$IFDEF CPU386} DB 66h PUSH WORD PTR HeapEnd DB 66h PUSH WORD PTR Name DB 66h PUSH WORD PTR Tail DB 66h PUSH WORD PTR HeapPtr {$ELSE} PUSH WORD PTR HeapEnd+2 PUSH WORD PTR HeapEnd PUSH WORD PTR Name+2 PUSH WORD PTR Name PUSH WORD PTR Tail+2 PUSH WORD PTR Tail PUSH WORD PTR HeapPtr+2 PUSH WORD PTR HeapPtr {$ENDIF} CALL ReallocateMemory CALL SwapVectors CALL DOS.EXEC CALL SwapVectors CALL ReallocateMemory MOV AX, DosError OR AX, AX JNZ @OUT MOV AH, 4Dh INT 21h @OUT: END; [/code:1:4cb2ac164f]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...