Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372

    [C++ api GetDateFormat()]

    Utilizzo la funzione per ottenere l'anno dalla data, così facendo il sistema diventa instabile (schermata blue) ... dove é il problema????

    LCID Locale = LOCALE_SYSTEM_DEFAULT;
    DWORD dwFlags = 0;
    CONST SYSTEMTIME *lpDate = NULL;
    LPCTSTR lpFormat;
    lpFormat = "yyyy";
    LPTSTR lpDateStr;

    GetDateFormat(Locale, dwFlags, lpDate, "yyyy", lpDateStr, 50);

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Il problema e' nel penultimo parametro. Il puntatore che passi non punta a nessuno spazio allocato. Fra l'altro, nell'ultimo parametro indichi che lo spazio disponibile e' di 50 caratteri ma questi caratteri non esistono. L'uso corretto e'

    codice:
    char DateStr[5];
    GetDateFormat(LOCALE_SYSTEM_DEFAULT, NULL, NULL, "yyyy", (LPSTR)&DateStr, 5);

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    Originariamente inviato da oregon
    Il problema e' nel penultimo parametro. Il puntatore che passi non punta a nessuno spazio allocato. Fra l'altro, nell'ultimo parametro indichi che lo spazio disponibile e' di 50 caratteri ma questi caratteri non esistono. L'uso corretto e'

    codice:
    char DateStr[5];
    GetDateFormat(LOCALE_SYSTEM_DEFAULT, NULL, NULL, "yyyy", (LPSTR)&DateStr, 5);

    E' vero ... anche se comunque riuscivo ad ottenere l'anno ?!?!

    Avevo usato i 5 caratteri ma dava lo stesso problema quindi pensado fosse un problema di larghezza del buffer ho aumentato fino a 50.


    grazie

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da stefanoB
    E' vero ... anche se comunque riuscivo ad ottenere l'anno ?!?!

    Avevo usato i 5 caratteri ma dava lo stesso problema quindi pensado fosse un problema di larghezza del buffer ho aumentato fino a 50.


    grazie
    Certo ... ma dato che la memoria non l'avevi allocato, la scrittura avveniva chissa' dove in memoria ... con conseguente crash ...

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.