我正在使用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
...