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 du Club
    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
    Points : 58
    Points
    58
    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 éminent
    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 : 38
    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
    Points : 8 389
    Points
    8 389
    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 du Club
    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
    Points : 58
    Points
    58
    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 éminent
    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 : 38
    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
    Points : 8 389
    Points
    8 389
    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 éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 385
    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 385
    Points : 20 463
    Points
    20 463
    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 éminent
    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 : 38
    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
    Points : 8 389
    Points
    8 389
    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