visual studio宏定义环境变量路径

时间:2017-04-14 09:40:53

标签: c++ visual-studio char environment-variables c-preprocessor

我正在使用visual studio 2015,c ++项目。在属性,C / C ++,预处理器中,我已经定义了一个宏,如下所示:_SOLUTION_DIR_="$(SolutionDir)"

在代码中使用_SOLUTION_DIR_,我发现它等于“blaah \\”,其中路径blah仅包含“\”作为文件夹之间的分隔符。这让我有Error C2001: newline in constant

我知道visual studio环境变量$(SolutionDir)以斜杠结尾,但为什么只有这个结尾反斜杠被视为“\\”而不是其他?如何解决我的问题?

以下是代码:

ConvertWchartArrayToCharArray(_SOLUTION_DIR_, pFilePath, MAX_PATH);

其中ConvertWchartArrayToCharArray由:

定义
size_t ConvertWchartArrayToCharArray(const char * src, char * dest, size_t dest_len)
{
    size_t i;
    wchar_t code;
    i = 0;
    while (src[i] != '\0' && i < (dest_len - 1))
    {
        code = src[i];
        if (code < 128)
        {
            dest[i] = char(code);
        }
        else
        {
            dest[i] = '?';
            if (code >= 0xD800 && code <= 0xD8FF)
            {
                i++;
            }
        }
        i++;
    }
    dest[i] = '\0';
    return i - 1;
}

编辑现在我正在设置_SOLUTION_DIR_=LR"($(SolutionDir))"并使用

ConvertWchartArrayToCharArray(_bstr_t(_SOLUTION_DIR_), pFilePath, MAX_PATH);

我遇到以下问题:文件路径对\\个分隔符有效,最后包含文件名,但执行fopen(filepath, "r")会给我null ...

0 个答案:

没有答案