C++预处理器路径根
是否可以使用 C++ 预处理器处理文件路径?
我想要的是这个 GETROOT( __FILE__ )
扩展到 \\myserver\myshare\
假设文件的路径类似于 \\myserver\myshare\folder\folder\file.txt
我正在使用 Windows XP 上的 mcpp
Is it possible to process a file path using the C++ preprocessor?
What I want is thisGETROOT( __FILE__ )
expanding into\\myserver\myshare\
Supposing that the path to the file is something like \\myserver\myshare\folder\folder\file.txt
I'm using mcpp
on Windows XP
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
取决于编译器,预处理器在 GCC/Microsoft 等上的行为略有不同。
没有符合标准的方法可以做到这一点。
在 Windows 上,您可能会尝试使用构建环境变量。 Visual Studio 可以将这些值($(SolutionDir) 等)公开给预处理器上下文。只需添加一个预处理器值,例如 ROOT_PATH="$(SolutionDir)" (项目设置中的 C/C++ -> 预处理器)。
Depends on the compiler, the preprocessor behaves slightly different on GCC/Microsoft etc.
There is not standard-conform way to do that..
On Windows you might try to use build environment variables. Visual Studio can expose these values ($(SolutionDir) etc) to the preprocessor context. Just add a preprocessor value like ROOT_PATH="$(SolutionDir)" (C/C++ -> preprocessor in project settings).
不,不是,至少不是以标准方式。我不能肯定地说世界上任何地方都没有编译器可以做到这一点,但这似乎不太可能。
什么用例意味着您无法在运行时执行此操作?
No, it's not, at least not in a standard way. I couldn't say for sure that there are no compilers anywhere in the world that do it, but it seems unlikely.
What's the use-case that means you can't do it at runtime?