IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

[API Win 32 C] strsafe.h no such file or directory


Sujet :

Windows

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 83
    Par défaut [API Win 32 C] strsafe.h no such file or directory
    Que ce soit sous Code::block ou MS Visual C++, le code suivant ne compile pas
    (issu de msdn: http://msdn.microsoft.com/fr-fr/libr...mmunityContent )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    #include <windows.h>
    #include <tchar.h>
    #include <strsafe.h>
    
    // GetLastWriteTime - Retrieves the last-write time and converts
    //                    the time to a string
    //
    // Return value - TRUE if successful, FALSE otherwise
    // hFile      - Valid file handle
    // lpszString - Pointer to buffer to receive string
    
    BOOL GetLastWriteTime(HANDLE hFile, LPTSTR lpszString, DWORD dwSize)
    {
        FILETIME ftCreate, ftAccess, ftWrite;
        SYSTEMTIME stUTC, stLocal;
        DWORD dwRet;
    
        // Retrieve the file times for the file.
        if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite))
            return FALSE;
    
        // Convert the last-write time to local time.
        FileTimeToSystemTime(&ftWrite, &stUTC);
        SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
    
        // Build a string showing the date and time.
        dwRet = StringCchPrintf(lpszString, dwSize, 
            TEXT("%02d/%02d/%d  %02d:%02d"),
            stLocal.wMonth, stLocal.wDay, stLocal.wYear,
            stLocal.wHour, stLocal.wMinute);
    
        if( S_OK == dwRet )
            return TRUE;
        else return FALSE;
    }
    
    int _tmain(int argc, TCHAR *argv[])
    {
        HANDLE hFile;
        TCHAR szBuf[MAX_PATH];
    
        if( argc != 2 )
        {
            printf("This sample takes a file name as a parameter\n");
            return 0;
        }
        hFile = CreateFile(argv[1], GENERIC_READ, FILE_SHARE_READ, NULL,
            OPEN_EXISTING, 0, NULL);
    
        if(hFile == INVALID_HANDLE_VALUE)
        {
            printf("CreateFile failed with %d\n", GetLastError());
            return 0;
        }
        if(GetLastWriteTime( hFile, szBuf, MAX_PATH ))
            _tprintf(TEXT("Last write time is: %s\n"), szBuf);
            
        CloseHandle(hFile);    
    }
    J'ai toujours le même genre d'erreur à savoir
    Cannot open include file: 'strsafe.h': No such file or directory
    J'ai téléchargé le SDK win 2008, mais ça n'a rien changé.
    Est-ce qu'un pro des API WIN aurait une idée?

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Es-tu pourtant sûr d'avoir strsafe sur ton disque dur ? Dans quel répertoire ? Est-ce que ce répertoire est bien spécifié dans les la liste des répertoires où le compilateur va chercher les includes ? Quelle version de Visual C++ utilises-tu ? strsafe n'est en effet pas livré par défaut avec CodeBlocks. Il faut installer le SDK pour l'avoir.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 83
    Par défaut
    Bizarre car le même code est compilé sur mon PC du boulot..
    Sans SDK installé et avec visual c++ express 2010

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Avoir Visual Studio Express version 2008 ou plus récente signifie avoir le SDK de Windows correspondant installé sur son disque. Tu n'as pas répondu à mes questions.

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Citation Envoyé par rin01 Voir le message
    Bizarre car le même code est compilé sur mon PC du boulot..
    Sans SDK installé et avec visual c++ express 2010
    salut strsafe.h c'est un fichier qui contient toutes les re-définitions de printf et autres mais avec mode sécurisé ( par exemple printf_s)
    Donc le plus simple c'est d'installer visual C++ express 2010.

  6. #6
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Les printf_s et co. c'est dans stdio.h. Sous-entendu le stdio.h de Visual bien sûr.

    strsafe.h c'est plutôt les StringCchPrintf et co. Il s'agit de plus d'un en-tête de l'API Windows et non de la bibliothèque de fonctions C.

Discussions similaires

  1. conio.h: No such file or directory
    Par débutant_en_C dans le forum C
    Réponses: 3
    Dernier message: 10/08/2006, 18h55
  2. list : no such file or directory :(
    Par Bakura dans le forum C++
    Réponses: 23
    Dernier message: 13/06/2006, 16h30
  3. Réponses: 7
    Dernier message: 26/04/2006, 09h56
  4. Réponses: 3
    Dernier message: 16/01/2006, 18h24
  5. Réponses: 1
    Dernier message: 04/10/2005, 20h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo