Bonjour,
Est-ce que la méthode GetTempPath fonctionne en C++/CLI ?
Je n'arrive pas à l'implémenter. Pouvez-vous me donner un exemple ?
Merci !
Version imprimable
Bonjour,
Est-ce que la méthode GetTempPath fonctionne en C++/CLI ?
Je n'arrive pas à l'implémenter. Pouvez-vous me donner un exemple ?
Merci !
En C++/CLI, on récupèrerait le chemin ainsi:
Code:System::String^ tempPath = System::IO::Path::GetTempPath();
Ou plus simple si on est dans le .cpp:
(bizarrement, celui-ci n'est pas disponible via Environment::GetFolderPath()...)Code:
1
2
3
4
5
6 using namespace System; using namespace System::IO; ... String^ tempPath = Path::GetTempPath();
Merci beaucoup.
Je viens de tester, mais j'ai 2 erreurs à la compilation :
Erreur 1 error C2039: 'GetTempPathW'*: n'est pas membre de 'System :: IO :: Path'
Erreur 2 error C2660: 'GetTempPathW'*: la fonction ne prend pas 0 arguments
(alors que j'ai bien utilisé GetTempPath et non GetTempPathW)
Je pense que vous avez, directement ou indirectement, incorporé la MACRO MSVC++ natif qui convertie "GetTempPath" en "GetTempPathW" quand la constante de compilation UNICODE est définie.
Vous pouvez vérifier mon assertion avec l'option de compilation "/P" qui donnerait dans le .i généré la définition de cette MACRO et depuis quel #include.
Vous ne devriez pas trop mélanger du code managé C++/CLI avec du code natif.
Ah, je vois le problème.
Pour ça, je vois deux solutions:
- Ne pas inclure <windows.h>
- Ajouter un #undef GetTempPath après les inclusions.
Merci !
<windows.h> n'était pas inclus.
Par contre, avec #undef GetTempPath ca fonctionne.
Pour mon info, que fait le #undef GetTempPath ?
Il annule le #define GetTempPath GetTempPathW qui se trouve dans <WinBase.h> (un des fichiers d'en-tête inclus par <windows.h>).
Merci