c ++,如何在代码中获取解决方案目录

时间:2018-10-30 08:44:39

标签: c++ visual-c++ macros preprocessor

我正在为返回其完整路径的dll函数编写单元测试。 测试项目和dll项目都在同一解决方案中。

我当时正在考虑获取解决方案目录,并将其余路径附加到assert中。

在测试项目的预处理器定义中定义为:_SOLUTIONDIR=$(SolutionDir);

但是在测试文件中,我得到了#define _SOLUTIONDIR C:\*\Project\ expands to C:\*\Project\ unrecognized token

我应该如何将其转换或转换为字符串?或一般而言,获取相对路径的最佳方法是什么?

dll file has function returning 
--------------------------------
 EXTERN_C IMAGE_DOS_HEADER __ImageBase;
LPTSTR  strDLLPath1 = new TCHAR[_MAX_PATH];
        ::GetModuleFileName((HINSTANCE)&__ImageBase, strDLLPath1, _MAX_PATH);
        wstring temp1(strDLLPath1);
        string temp2(temp1.begin(), temp1.end());
return temp2;

1 个答案:

答案 0 :(得分:0)

解决方案是按照以下方式定义_SOLUTIONDIR

_SOLUTIONDIR=R"($(SolutionDir))"