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

C++ 什么';c+有什么问题+;下面的代码?,c++,syntax,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 f

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

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);
    ....

为什么
|
被视为标识符?

您的管道实际上不是管道。
STGM
常量之间的字符应该是
|
(ASCII 124),但您拥有的是
(ASCII 166,严格来说它根本不是ASCII)。看起来你是复制粘贴错误的受害者。

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

对我来说似乎很好;你试过缩小范围吗?例如,为该参数传递0,并查看编译器所说的内容。也许那些
STGM_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu│与Ascii 124:
|
。并排:
│|找到了您使用的:扩展Ascii 179,根据。
syntax error : missing ')' before identifier '│'