C ++, как получить каталог решения в коде - PullRequest
0 голосов
/ 30 октября 2018

Я пишу модульный тест для 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 голосов
/ 30 октября 2018

Решением было определить _SOLUTIONDIR следующим образом

_SOLUTIONDIR=R"($(SolutionDir))"
...