我看到了几个与此主题相关的问题,但我没有找到这样简单而常用的方法。
我的问题是:如何在我的C ++代码中将$(projectDir)
或其他宏作为string
或char*
?
由于
答案 0 :(得分:3)
如果您的编译器支持raw strings,那么您可以将this.Left = (rightmost.WorkingArea.Right / 2) - (this.Width / 2);
this.Top = 0;
添加到预处理器定义(来自Visual Studio 2013的屏幕截图):
然后,您可以在代码中添加以下内容:
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提供有价值的信息。