请高手帮忙~~~在EVC下的2个函数没定义.

djsrryd   2007-10-17 19:34 楼主
error C2065: 'GetRunningObjectTable' : undeclared identifier
error C2065: 'CreateItemMoniker' : undeclared identifier

我用的是EVC 4.0+SP4

回复评论 (12)

包含Objbase.h头文件了吗
点赞  2007-10-17 20:05
你去VC下找找看能不能找到这两个函数的源码
我家里的机器还没有安装VC和evc
有空我去看看
网上资料:
NET Framework 类库   

UCOMIBindCtx.GetRunningObjectTable 方法
返回对与此绑定进程相关的运行对象表 (ROT) 的访问权。

[Visual Basic]
Sub GetRunningObjectTable( _
    ByRef pprot As UCOMIRunningObjectTable _
)
[C#]
void GetRunningObjectTable(
   out UCOMIRunningObjectTable pprot
);
[C++]
void GetRunningObjectTable(
   [
   Out
] UCOMIRunningObjectTable** pprot
);
[JScript]
function GetRunningObjectTable(
   pprot : UCOMIRunningObjectTable
);
参数
pprot
成功返回时对 ROT 的引用。
备注
有关更多信息,请参见 MSDN Library 中有关 IBindCtx::GetRunningObjectTable 的现有文档。

要求
平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列
点赞  2007-10-17 20:14
包含Objbase.h头文件了吗
====================================
我加过了,不行!
点赞  2007-10-17 20:31
GetRunningObjectTable CreateItemMoniker
在eVC里面不支持的. 请换一个...
点赞  2007-10-18 08:31

6楼 low 

一般来说,你可以选中GetRunningObjectTable 然后按F1 就知道在eVC下是不是含有这个函数.
点赞  2007-10-18 08:32
可能是平台不支持吧
楼主用的SDK是什么?
点赞  2007-10-18 08:40
我用的SDK是人家开发板上的SDK,之前用他们给的SDK_STUDY在模拟器上跑完全没问题.但后来他们给我现在板子用的新SDK就不行了,就出现这2个函数没定义.
我想问要是换一个函数,EVC下有相同功能的函数吗?谢谢大家了
点赞  2007-10-18 09:06
void CMLS_Multimedia::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)m_pGraphBuilder, GetCurrentProcessId());
                HRESULT hr = CreateItemMoniker(L"!", wsz, &pMoniker);
                if(SUCCEEDED(hr))
                {
                        hr = objectTable->Register(0, m_pGraphBuilder, pMoniker, &m_dwObjectTableEntry);
                        pMoniker->Release();
                }
                objectTable->Release();
        }

}

//=============================================================================
//
void CMLS_Multimedia::RemoveFromObjectTable(void)
{

    IRunningObjectTable * objectTable = 0;
    if(SUCCEEDED(GetRunningObjectTable(0, &objectTable)))
        {
        objectTable->Revoke(m_dwObjectTableEntry);
        objectTable->Release();
                m_dwObjectTableEntry = 0;
    }
}
点赞  2007-10-18 10:36
让定制SDK的厂商,重新做一个SDK给你啊!
点赞  2007-10-18 11:00
  有些函数在VC下支持,但在WinCE下是不支持的,要看MSDN,并且在不同平台下也是有区别的
点赞  2007-10-27 22:47
不支持很正常阿,evc的函数本来就要大大小于VC的函数,要看evc的msdn,,
点赞  2007-10-29 10:11
这些函数都是支持的,在 Documents 里面都写明了。

OS Versions: Windows CE 3.0 and later.
Header: Objbase.h.
Link Library: Ole32.lib.


你没Link Library吧
点赞  2007-10-30 23:16
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复