将projectDir作为字符串或c ++中的char *

时间:2016-07-05 11:59:29

标签: c++ visual-studio macros

我看到了几个与此主题相关的问题,但我没有找到这样简单而常用的方法。

我的问题是:如何在我的C ++代码中将$(projectDir)或其他宏作为stringchar*

由于

3 个答案:

答案 0 :(得分:3)

如果您的编译器支持raw strings,那么您可以将this.Left = (rightmost.WorkingArea.Right / 2) - (this.Width / 2); this.Top = 0; 添加到预处理器定义(来自Visual Studio 2013的屏幕截图): enter image description here

然后,您可以在代码中添加以下内容:

MYMACRO=R"($(ProjectDir))";

答案 1 :(得分:2)

&(projectDir)字符串无法直接传递给程序。相反,您可以使用GetCurrentDirectory()获取启动可执行文件的目录, 在微软网站上做了很好的解释:

  

https://msdn.microsoft.com/en-us/library/windows/desktop/aa364934(v=vs.85).aspx

你会得到一个* char字符串。然后,您可以使用简单的字符串操作移动目录。

答案 2 :(得分:2)

MYMACRO = R"($(PROJECTDIR))&#34 ;;完美适合我。

我需要这个很长一段时间,这是一个完美的解决方案。 我的测试用例采用相对于$(ProjectDir)的输入文件路径,同时运行exe试图找到相对于bin文件夹的输入文件路径。结果,我可以让VS项目高兴或者exe,但不是两者。

这个解决方案非常适合让他们两个都快乐。

感谢@mvidelgauz提供有价值的信息。