Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    60

    (C)come mappare un file in memoria

    Salve,
    premetto che sono un principiante per quanto riguarda la programmmazione, scrivo in questo forum perchè non riesco a fare funzionare questo programma

    codice:
    #include "stdafx.h"
    #include <stdio.h>
    #include <windows.h>
    WIN32_FIND_DATA FindData;
    char * FileName="C:\\notepad.exe";
    
    int main(){
    HANDLE hFile; 	
    hFile=FindFirstFile(FileName,&FindData);	
    HANDLE MyFileHandle;
    HANDLE MyFileMapped;
    LPVOID StartingAddr;
    if(!SetFileAttributes(FileName,FILE_ATTRIBUTE_NORMAL)){return -1;}
    MyFileHandle = CreateFile(FileName,                           
                                 GENERIC_READ | GENERIC_WRITE,
                                 FILE_SHARE_WRITE,
                                 NULL,
                                 OPEN_EXISTING,
                                 NULL,
    							 NULL
                                );
    MyFileMapped = CreateFileMapping(FileName,
    								 NULL,
    								 PAGE_READWRITE,
    								 0,
    								 FindData.nFileSizeLow,
    								 NULL);
    if(MyFileMapped == NULL){
    	printf("Error: (%d).\n", GetLastError());
    	return -1;}
    StartingAddr = MapViewOfFile(MyFileMapped,
    							 FILE_MAP_WRITE,
    							 NULL,
    							 NULL,
    							 FindData.nFileSizeLow);
    
    
    
    UnmapViewOfFile(StartingAddr);
    CloseHandle(MyFileMapped);
    CloseHandle(FileName);
    
    return 0;
    }
    Se lo eseguo infatti mi restituisce sempre l'errore 6..
    Come posso fare?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    In quale linea?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    60
    quando l'eseguo mi dice error: (6)
    viene fuori da questa istruzione
    printf("Error: (%d).\n", GetLastError());

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: (C)come mappare un file in memoria

    Hai usato il FileName al posto dell'handle ...

    MyFileHandle = CreateFile(MyFileHandle,
    GENERIC_READ | GENERIC_WRITE,
    FILE_SHARE_WRITE,
    NULL,
    OPEN_EXISTING,
    NULL,
    NULL
    );

    ...

    CloseHandle(MyFileHandle);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    60
    ah ok
    grazie infinite

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.