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

visual c++, how to Get the solution directory in the code

本文关键字:解决方案 代码 获取 c++ 何获取 visual      更新时间:2023-10-16

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

我正在考虑获取解决方案目录并附加路径的其余部分来断言。

在测试项目的预处理器定义中定义:_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;

解决方案是将_SOLUTIONDIR定义为以下

_SOLUTIONDIR=R"($(SolutionDir))"