Français
Forum

Dossier im RAM erstellen

 
- page 1 -



Jac
de
Lad
allô Community!

avec qui API CreateFile peux on chacun la quantité verschiedener Fichiers erstellen. je cherche une Possibilité une Dossier quasi im RAM trop erstellen um ensuite mittels einer DLL-Funktion puis zuzugreifen, quelque chose avec cela trop faire et qui Dossier anschließend wieder trop effacer. avec cela serait je une temporäre Dossier entourer, quoi erstens plus rapide ist et zweitens simple plus beau. Kennt sich quelqu'un avec cela aus? je viens avec qui Aider pas bien sûr, il y a cela certains paramètre avec des centaines Opportunités...

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
18.04.2008  
 



 
- page 1 -


string a&,0=Blub
 
19.04.2008  
 




Jac
de
Lad
je hab mir im MSDN qui APIs angesehen, mais je viens avec cela pas bien sûr. la hâte du eventuell un Minimalbeispiel?

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
19.04.2008  
 



Im Moment pas - qui pipeUnit raspelt vieles hin-et-her sodass cet à peine zeigt comme simple allez...
 
19.04.2008  
 




Jac
de
Lad
c'est mal. quand même merci, je exposition mich la fois plus um.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
19.04.2008  
 




Frank
Abbing

je cherche une Possibilité une Dossier quasi im RAM trop erstellen um ensuite mittels einer DLL-Funktion puis zuzugreifen, quelque chose avec cela trop faire et qui Dossier anschließend wieder trop effacer.


Hört sich pour mich à comment un stinknormaler Speicherbereich. Übergib simple une aiguille sur den grenier à qui Dll-Funktion, z.B. NeueFunktion(bereich#)
 
19.04.2008  
 



Stimmt, il brauchs oui garnicht prozessübergreifend, sei car qui DLL fonctionne dans einem anderen Prozess...
 
20.04.2008  
 




Andreas
Miethe


Frank Abbing
Frank Abbing
je cherche une Possibilité une Dossier quasi im RAM trop erstellen um ensuite mittels einer DLL-Funktion puis zuzugreifen, quelque chose avec cela trop faire et qui Dossier anschließend wieder trop effacer.


Hört sich pour mich à comment un stinknormaler Speicherbereich. Übergib simple une aiguille sur den grenier à qui Dll-Funktion, z.B. NeueFunktion(bereich#)


Wird pas marcher !
So comment je cela verstanden habe, soll une Dossier, qui seulement im Ram liegt, avec einem Dateinamen angesprochen volonté.

Beispiel:

une EXE wird mittels Datengenerator dans qui Exe eingebunden.
là habe je mon EXE im Speicherbereich.
maintenant versuch la fois avec qui Kernel32.Dll per CreateProcess() cela Ding zum courir trop kriegen.
là wird ne...aucune Speicherbereich mais un Dateiname erwartet.
toujours si une Dll-Funktion une aiguille sur une Dateinamen erwartet, et en gibt es une la quantité, wird cela so pas marcher.

s'il te plaît berichtige mich si je là faux liege !
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
20.04.2008  
 




Frank
Abbing

s'il te plaît berichtige mich si je là faux liege !


Du liegst là sûrement pas faux. qui l'affaire avec dem Dateinamen habe je bewußt aussen avant gehalten, weil je en ausgegangen était, dass Jac qui Dll selber erzeugt. Pour cette fand je qui technologie sur qui Bereiche viel sinnvoller. cela allez mais avec einer fremden Dll pas.

mais je suis sûrement, dass aussi une Exedatei aus dem grenier gestartet volonté peux. Immerhin allez cela oui aussi avec Dlls (Memorymodule) et cet sommes oui aussi Exedateien.
comment De toute façon, alles dans Allem ist iFs Solution vorzuziehen. je suis sûrement, il liefert Jac encore une kurzen Democode en supplément.
 
20.04.2008  
 




Andreas
Miethe


allô Frank,

ist une entier autre Geschichte, si le Dll selbst geschrieben wird.
en vais je mais pas aus.

Jac
mais comment peux je qui Dossier nutzen, si le Funktion qui DLL une aiguille sur une Dateinamen nécessaire?

Jac
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
20.04.2008  
 



 
- page 2 -



Jac
de
Lad
non, non, non.

Folgendes:

une DLL xyz nécessaire pour une opération une Dateinamen (meinetwegen wird qui Dossier geladen et sous einem anderen Format wieder gespeichert). je erzeuge qui Dossier mais seulement temporär, weil Profan qui Dossier x seulement dans einem anderen Format erzeugen peux. je veux eh bien cet temporäre Dossier tourner autour de, weil es mir trop lente ist, dass qui sur qui Festplatte erstellt wird. Deswegen cherche je pour einer Possibilité, dass qui Dossier quand même erstellt wird, mais qui Ausgabe dans den RAM umgeleitet wird. qui Dossier muss naturellement quand même sous einem Dateinamen ansprechbar son, là sonst qui DLL xyz pas plus allez.

Wisst son maintenant quoi je mon?
Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
20.04.2008  
 




Sebastian
König
Jac
non, non, non.

Folgendes:

une DLL xyz nécessaire pour une opération une Dateinamen (meinetwegen wird qui Dossier geladen et sous einem anderen Format wieder gespeichert). je erzeuge qui Dossier mais seulement temporär, weil Profan qui Dossier x seulement dans einem anderen Format erzeugen peux. je veux eh bien cet temporäre Dossier tourner autour de, weil es mir trop lente ist, dass qui sur qui Festplatte erstellt wird. Deswegen cherche je pour einer Possibilité, dass qui Dossier quand même erstellt wird, mais qui Ausgabe dans den RAM umgeleitet wird. qui Dossier muss naturellement quand même sous einem Dateinamen ansprechbar son, là sonst qui DLL xyz pas plus allez.

Wisst son maintenant quoi je mon?
Jac


une Possibilité, qui mir justement einfällt, wäre peut-être CreateNamedPipe(). Solche Objekte bekommen une Namen pour dem Schema \.pipepipename et laisser sich avec CreateFile() ouvrir, sodass on vous höchstwahrscheinlich à qui Funktion comme via ihres Dossier-Namens transfert pourrait. cela schwierige à qui l'affaire ist allerdings, dass on sich dans dem aufrufenden Prozess um cela décrire qui Pipe kümmern muss - très schwierig, car cela ganze devrait parallèle trop dem Funktionaufruf geschehen, alors dans einem eigenen Fil ablaufen (quoi avec Profan2Cpp wohl marcher serait). malheureusement habe je im Moment extrem wenig Zeit, sodass je ne...aucune Beispiel liefern peux, mais je werde dans den prochain Tagen la fois quelque chose ausprobieren...

peut-être hat mais quelqu'un encore une bessere, i.e. einfachere concept...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
20.04.2008  
 




Sebastian
König
So, ici ist maintenant la fois un Beispiel. Im Prinzip funktioniert es - jedenfalls chez mir. qui Procédure TestProc est un Dummy pour qui DLL-Funktion: elle ouvre qui Dossier sur ihren Namen et liest den le contenu, jusqu'à rien plus zum Lesen disponible ist. malheureusement liegt ici (höchstwahrscheinlich) aussi qui grand Einschränkung des Konzepts: cela ganze funktioniert wohl seulement, si cela Lesen sur cet Art et Weise stattfindet et pas irgendwie zunächst qui Dateigröße ermittelt et ensuite alles sur einem gelesen wird. Einen Versuch ist mais peut-être quand même Wert...
KompilierenMarqueSéparation
 $H Windows.ph
 $IFNDEF P2CPP
Cls
Print Der Code funktioniert leider nur mit Profan2Cpp - Sorry!
Print
Print Taste zum Beenden.
WaitKey
End
 $ENDIF
var pipe$ = \\.\pipe\sk-testpipe
var signal& = ~CreateEvent(0,0,0,0)
declare data#
dim data#,1024 * 100 100 KB
clear data#
Bereich füllen...
declare error&

proc WriteThreadProc

    parameters lpParams&
    P2CPP: <USE_EXTERNAL_ST>
    var pipe& = ~CreateNamedPipe(Addr(pipe$),~PIPE_ACCESS_OUTBOUND,~PIPE_TYPE_BYTE | ~PIPE_WAIT,1,1024,1024,500,0)

    if pipe& = ~INVALID_HANDLE_VALUE

        error& = ~GetLastError()
        ~SetEvent(signal&)
        ~ExitThread(1)

    endif

    ~SetEvent(signal&)
    ~ConnectNamedPipe(pipe&,0)
    var dwTotalAvail& = SizeOf(data#)
    var dwTotalWritten& = 0
    var dwWritten& = 0

    while dwTotalWritten& < dwTotalAvail&

        dwWritten& = 0
        ~WriteFile(pipe&,data# + dwTotalWritten&,1024,Addr(dwWritten&),0)
        dwTotalWritten& = dwTotalWritten& + dwWritten&
        ~Sleep(0)

    endwhile

    ~FlushFileBuffers(pipe&)
    ~DisconnectNamedPipe(pipe&)
    ~CloseHandle(pipe&)
    ~ExitThread(0)
    P2CPP: </USE_EXTERNAL_ST>

endproc

proc TestProc

    parameters filename$
    declare file&
    var file& = ~CreateFile(Addr(filename$),~GENERIC_READ,0,0,~OPEN_EXISTING,0,0)
    Color 12,15
    Print Datei-Handle:,file&

    if file& = ~INVALID_HANDLE_VALUE

        Print WinError$(error&)
        WaitKey
        End

    endif

    var dwTotalRead& = 0
    var dwRead& = 0
    declare buffer#
    dim buffer#,1024

    while ~ReadFile(file&,buffer#,1024,Addr(dwRead&),0)

        dwTotalRead& = dwTotalRead& + dwRead&
        dwRead& = 0

    endwhile

    ~CloseHandle(file&)
    Print Int(dwTotalRead&  1024),KB gelesen
    Print
    dispose buffer#

endproc

Cls
declare id&
var thread& = ~CreateThread(0,0,ProcAddr(WriteThreadProc,1),0,0,Addr(id&))
Print Thread-ID:,id&
Print Thread-Handle:,thread&
Print
~WaitForSingleObject(signal&,~INFINITE)
~CloseHandle(signal&)
TestProc pipe$
~CloseHandle(thread&)
dispose data#
Color 0,15
Print Taste zum Beenden.
WaitKey
Fin

HTH

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
21.04.2008  
 




répondre


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.081 Views

Untitledvor 0 min.
Jörg Sellmeyer12.06.2018
Ernst12.05.2014

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