首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用64位IFilter中的32位Com对象

使用64位IFilter中的32位Com对象
EN

Stack Overflow用户
提问于 2010-09-29 04:56:03
回答 2查看 892关注 0票数 4

我有一个用Delphi编写的IFilter,我正试图在64位Windows7桌面搜索下工作。

由于它是用Delphi开发的,所以我只能将其编译为32位DLL。

为了解决这个问题,我正在尝试用Visual C++编写一个64位的IFilter动态链接库,它在内部使用我的32位IFilter Com对象,使用概述的DllSurogate技术here

我已经在一个测试64位的控制台应用程序下让所有这些工作正常。我可以创建64位包装器的一个实例,它在内部创建32位IFilter对象并将所有调用委托给它。然后,我可以检索我的文档的内容。

问题是,当我在WDS中注册时,64位包装器不能再创建32位对象。CoCreateInstance返回‘服务器执行失败’(CO_E_SERVER_EXEC_FAILURE)。

这就是我在64位包装器旁边创建32位对象的对象

代码语言:javascript
运行
复制
result = CoCreateInstance(clsid, 0, CLSCTX_LOCAL_SERVER , IID_IFilter, (LPVOID*)&m_pFilter);

知道为什么会发生这种事吗。这是WDS中IFilters的权限限制吗?

谢谢你在这方面的帮助。

EN

Stack Overflow用户

发布于 2010-09-29 20:38:00

还请记住,调用应用程序不需要在每次使用后卸载你的ifilter。它将重用内存中的ifilter来解析许多文件。但是,如果主机进程检测到问题(例如内存泄漏越来越严重),它将卸载ifilter并重试。几年前,我在32位上使用过ifilter代码,但我还没能解决64位上更严格的限制。如果你发现这是如何做到的,我希望你愿意在网上张贴细节……

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3816985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档