error C2440: '=' : impossible de convertir de 'const char *' to 'char *'

J'ai passé de nombreuses heures sur ici pour trouver de l'aide sur ce qui est apparemment une erreur commune, mais aucun que j'ai vu semble correspondre à mon cas.

Je suis à la migration d'un ancien hors de source, programme qui a été écrit dans Visual Studio 6 C++ pour Visual Studio 2012 et heureusement pour moi que je ne suis pas un programmeur C++ (juste un humble VB et C# développeur). L'assistant migration et l'internet ont été d'une grande aide afin de m'aider à trouver et de corriger le code que l'assistant ne peut pas gérer.

Dans ce bloc de code qui, je crois, est de ne rien faire de plus que de créer un répertoire

int CreateAllDirectories(const char* pszDir)
{
char*   pszLastSlash;
char    cTmp;


if( _access( pszDir, 0 ) != -1 ) {
    //it already exists
    return 0;
}

pszLastSlash = strrchr( pszDir, '\\' );
if ( pszLastSlash ) {
    cTmp = *pszLastSlash;
    *pszLastSlash = '
int CreateAllDirectories(const char* pszDir)
{
char*   pszLastSlash;
char    cTmp;
if( _access( pszDir, 0 ) != -1 ) {
//it already exists
return 0;
}
pszLastSlash = strrchr( pszDir, '\\' );
if ( pszLastSlash ) {
cTmp = *pszLastSlash;
*pszLastSlash = '\0';
//try again with one less dir
CreateAllDirectories( pszDir ); 
*pszLastSlash = cTmp;
}
if ( _mkdir( pszDir ) == -1 ) {
return -1;
}
return 0;
'
; //try again with one less dir CreateAllDirectories( pszDir ); *pszLastSlash = cTmp; } if ( _mkdir( pszDir ) == -1 ) { return -1; } return 0;

}

génère une erreur lorsque les résultats de strrchr( pszDir, '\' ) sont affectées à la variable pszLastSlash. Le reste de ce code, il ressemble à pszLastSlash = strrchr( pszDir, '\' ); est une expression valide.

Est le problème avec la double barre oblique inverse qui me ressemble et séquence d'échappement.

InformationsquelleAutor Gene Burk | 2013-05-01