下面的c ++代码有什么问题?

时间:2010-08-20 14:52:32

标签: c++ syntax

HRESULT SaveGraphFile(IGraphBuilder *pGraph, WCHAR *wszPath) 
{
    const WCHAR wszStreamName[] = L"ActiveMovieGraph"; 
    HRESULT hr;
    IStorage *pStorage = NULL;

    // First, create a document file that will hold the GRF file
    hr = StgCreateDocfile(
         wszPath,
         STGM_CREATE │ STGM_TRANSACTED │ STGM_READWRITE │ 
            STGM_SHARE_EXCLUSIVE,
         0, &pStorage);
    ....

我把它复制到某个地方,但编译器正在报告:

syntax error : missing ')' before identifier '│'

为什么|被视为标识符?

2 个答案:

答案 0 :(得分:12)

你的管道不是真正的管道。 STGM常量之间的字符应为|(ASCII 124),但您所拥有的是¦(ASCII 166,严格来说不是ASCII)。看起来你是一个错误的复制粘贴的受害者。

答案 1 :(得分:0)

我会尝试逐个删除常量,直到所有管道都消失,或者将带有常量的表达式放在自己的变量中,然后使用它。