Probl�me bizarre en mode Release
Bonjour,
J'ai probl�me bizarre en mode Release.
Le code est identique.
Voici la fonction. Elle a pour but d'afficher une boite de dialogue pour rechercher un fichier pour ensuite r�cup�rer le nom du fichier s�lectionn� par l'utilisateur.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| private: System::Void butLOAD_Click(System::Object * sender, System::EventArgs * e)
{
System::Windows::Forms::DialogResult result;
result = ofdLIC->ShowDialog();
if (DialogResult::OK == result)
{
IntPtr p = Marshal::StringToHGlobalAnsi(this->ofdLIC->FileName);
char *fn = reinterpret_cast<char*>(static_cast<void*>(p));
System::Runtime::InteropServices::Marshal::FreeHGlobal(p);
...
} |
ofdLIC est un openfiledialog.
En mode Debug, fn est bien rempli alors qu'en mode Release fn est toujours null.
Est ce que quelqu'un aurait une id�e ?
Merci d'avance
Probl�me bizarre en mode Release
Bonjour,
En fait j'ai besoin du char * car, j'appelle une fonction d'un dll mfc qui ne prend que des char *.
Par ailleurs, j'essaie d'appeler cette fonction avant de faire FreeHGlobal. Je ne l'ai pas indiqu� dans mon pr�c�dent message.
Code:
1 2 3 4 5
| IntPtr p = Marshal::StringToHGlobalAnsi(this->ofdLIC->FileName);
char *fn = reinterpret_cast<char*>(static_cast<void*>(p));
DllFunc_CreateConfigFile(fn);
....
System::Runtime::InteropServices::Marshal::FreeHGlobal(p); |
J'ai mis �galement un point d'arr�t sur la ligne char * fn = ... et l� fn est bien null !
�a peut �tre quoi le probl�me ? car �a fonctionne bien en mode Debug.
Le probl�me reste identique m�me si j'enl�ve la ligne FreeHGlobal.
Merci d'avance.
Encore quelquechose de louche
Bonjour,
J'ai appliqu� ta m�thode et l� encore il y a quelque chose de bizarre.
Voici ce que j'ai fait :
Code:
1 2 3
| char *fn;
fn = static_cast<char *>System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(ofdLIC->FileName).ToPointer());
DllFunc_CreateConfigFile(fn); |
J'ai mis en place un point d'arr�t et voila ce qui se passe.
Juste apr�s avoir pass� la ligne fn = ..., j'ai essay� de visualiser le variable fn avec un espion express et l� j'ai : fn erreur : l'identificateur 'fn' est hors de port�e. Pourtant je suis bien dans la m�me fonction.
Est ce que le probl�me pourrait venir de mon ofdLIC (OpenFileDialogue) ?
Lors du debug, ofdLIC->FileName a bien le chemin du fichier que j'ai s�lectionn�.
C'est compl�tement imcompr�hensible.