Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286

    [C/C++] VC++ 7.0 e CRunTime

    Sto testando questo codice all'interno di un progetto MFC compilato con VisualC++ 2003:

    codice:
    CString myStr = "27,54";
    int a=0, b=0;
    if (myStr.Find(_T(','))) 
    	_stscanf(stringa, "%d,%d", &a, &b);
    Il codice funziona bene e ottengo i due interi separati dalla virgola (a = 27 e b = 54).

    Volevo però utilizzare la versione sicura di stscanf , ovvero stscanf_s , ma purtroppo il compiltore
    non me la riconosce, anche se ho incluso <stdio.h> e pure <tchar.h>.

    L'errore è il seguente:

    codice:
    error C3861: '_stscanf_s': identifier not found, even with argument-dependent lookup
    Qualche suggerimento?


    Saluti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [C/C++] VC++ 7.0 e CRunTime

    Originariamente inviato da Paulin
    codice:
    error C3861: '_stscanf_s': identifier not found, even with argument-dependent lookup
    Non mi risulta che ci sia una funzione _stscanf_s
    C'è appunto _stscanf che è una macro (vedi tchar.h) che si espande in swscanf o sscanf a seconda del Unicode o non Unicode.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286

    Re: Re: [C/C++] VC++ 7.0 e CRunTime

    Originariamente inviato da andbin
    Non mi risulta che ci sia una funzione _stscanf_s
    C'è appunto _stscanf che è una macro (vedi tchar.h) che si espande in swscanf o sscanf a seconda del Unicode o non Unicode.
    Grazie della risposta.

    _stscanf_s viene accennata da MSDN in fondo a questa pagina:

    http://msdn2.microsoft.com/en-us/library/t6z7bya3(VS.80).aspx

    ...o anche qui:

    http://msdn2.microsoft.com/en-us/library/tsbaswba(VS.80).aspx

    ma comincio a pensare che possa trattarsi di un errore sul sito microsoft, perché in effetti non lo ritrovo nella libreria di riferimento del CRT.

    Tuttavia ho appena tentato di utilizzare sscanf_s, il risultato è sempre lo stesso: con sscanf compila, ma con sscanf_s non compila.

  4. #4

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Nelle pagine di cui hai riportato i link e' indicato chiaramente che riguardano unicamente la versione 2005 (ovvero la 8.0).

    Non vale quindi per il 2003 (che era la versione 7.1) ne' per il 2002 (versione 7.0).

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286
    ...urca! Hai ragione oregon, ora ricordo anche di aver letto che i miglioramenti della sicurezza sulle funzioni CRT (indicate con il suffisso "_s") sono state introdotte nella versione 2005.
    Che sbadato!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.