《directshow 实务精选》上的例子 编译出错!!帮忙看看吧!!DWORD_PTR没定义
问题1. 在 .net 2003 + directshow 9c 环境下编译第一个例子 AVCap出错?
在atlcomcli.h 文件中提示
CTempBuffer<char> pszA;
ATLTRY(pszA.Allocate(_convert));
语法错误如下
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlcomcli.h(799): error C2059: 语法错误 : “catch”
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlcomcli.h(799): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
}
问题2. 编译 例子AVChat 提示
void CDXGraph::AddToObjectTable(void)
{
IMoniker * pMoniker = 0;
IRunningObjectTable * objectTable = 0;
if (SUCCEEDED(GetRunningObjectTable(0, &objectTable)))
{
WCHAR wsz[256];
wsprintfW(wsz, L"FilterGraph %08p pid %08x", (DWORD_PTR)mGraph, GetCurrentProcessId());
HRESULT hr = CreateItemMoniker(L"!", wsz, &pMoniker);
if (SUCCEEDED(hr))
{
hr = objectTable->Register(0, mGraph, pMoniker, &mObjectTableEntry);
pMoniker->Release();
}
objectTable->Release();
}
}
代码中的
wsprintfW(wsz, L"FilterGraph %08p pid %08x", (DWORD_PTR)mGraph, GetCurrentProcessId());句提示如下错误:
e:\swf\SourceCodes\Chapter02\AVCap\CDXGraph.cpp(595): warning C4995: “wsprintfWInternal”: 名称被标记为 #pragma deprecated
e:\swf\SourceCodes\Chapter02\AVCap\CDXGraph.cpp(595): error C3861: “wsprintfWInternal”: 即使使用参数相关的查找,也未找到标识符