Marche en debug mais pas en release

SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013 - 30 sept. 2007 à 20:47
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013 - 1 oct. 2007 à 17:18
Bonjour j utilise un code qui marche tres bien (debug et release) en faisant
hfond=(HBITMAP)LoadImage(0,TruePath("\\data\\fond.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

Mais en mode release (en debug pas de probleme)

    char texte[255];
    strncpy(texte,TruePath("\\data\\fond.bmp"),255);

Meme ca ne marche pas ( texte = "")

le code complet

TCHAR pszDest[MAX_PATH];
CHAR* TruePath(char *b) {
    char* c=pszDest+GetModuleFileName(NULL, pszDest, MAX_PATH);    while(*c !'\\') c--; *c 0;
    strcat_s(pszDest, b);
    return pszDest;
}

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 sept. 2007 à 22:04
while(*c != '\\') c--; *c = 0;
strcat_s(pszDest, b);
Pourquoi strcat() alors que tu as le pointeur pour ecrire ???

while(*c != '\\') c--;
strcpy(c , b);

Reprenons sans rien renvoyer:

void TruePath(char *pszdest, char *sztoadd)
{
  char* c = pszdest + GetModuleFileName(0, pszdest, MAX_PATH);
  while(*c != '\\') c--;
  strcpy(c, sztoadd);
}

Ton appel deviendrait:
char texte[300];
TruePath(texte, "[file://\\data\\fond.bmp \\data\\fond.bmp]");

C'est plus simple et supprime le besoin de "TCHAR pszDest[MAX_PATH];"

ciao...
BruNews, MVP VC++
0
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013
1 oct. 2007 à 17:18
Ben disont que en utilisant "TCHAR pszDest[MAX_PATH];" ca me simplifi le code, il me suffit de faire

    if (!(LoadListMP3(TruePath("\\Music\\*")))) {
        MessageBox(NULL, "Musiques non trouvées", "", MB_OK);
    }
    hfond = LoadAnImage(TruePath("\\data\\fond.bmp"));
    hfond2 = LoadAnImage(TruePath("\\data\\fond2.bmp"));

En fait si j'ai utilisé strncpy(texte,TruePath("\\data\\fond.bmp"),255); c'etait pour etre sur que le probleme ne venait pas du reste de mon code (fonction loadimage() ou loadlistmp3() )

Et je viens de refaire le test avec un projet en mode console avec juste cette fonction et j'ai encore le meme probleme. Et quand j'essaye de tracer le code en mode release c'est l'allu totalle.
0
Rejoignez-nous