2011-01-27 7 views
1

Est-il possible de traiter un chemin de fichier à l'aide du préprocesseur C++?Racine du chemin du préprocesseur C++

Ce que je veux est ce GETROOT(__FILE__) expansion dans \\myserver\myshare\

Supposant que le chemin vers le fichier est quelque chose comme \\myserver\myshare\folder\folder\file.txt

J'utilise mcpp sous Windows XP

+0

Cela ressemble à un doublon de http://stackoverflow.com/questions/1591873/how-do-i-write-a-cpp-dir-macro-similar-to-file I personnellement utiliserait l'approche makefile, mais cela dépend de votre système de construction – Mumbles

+0

@ David Ashmore Je peux voir pourquoi vous dites cela, mais la question est dans un environnement différent et dans les deux cas, il n'y avait pas de solution spot-on. – DonkeyMaster

Répondre

0

Non, c'est pas, du moins pas de manière standard. Je ne pourrais pas dire avec certitude qu'il n'y a aucun compilateur dans le monde qui le fasse, mais cela semble improbable.

Quel est le cas d'utilisation qui signifie que vous ne pouvez pas le faire lors de l'exécution?

+0

J'utilise le préprocesseur pour masser des fichiers pour un DSL, donc la sortie n'est pas C++. – DonkeyMaster

1

Dépend du compilateur, le préprocesseur se comporte un peu différent sur GCC/Microsoft etc. Il n'y a pas moyen standard conforme à le faire ..

Sous Windows, vous pouvez essayer d'utiliser des variables d'environnement de construction. Visual Studio peut exposer ces valeurs ($ (SolutionDir) etc) au contexte du préprocesseur. Ajoutez simplement une valeur de préprocesseur comme ROOT_PATH = "$ (SolutionDir)" (préprocesseur C/C++ -> dans les paramètres du projet).