用过文件搜索引擎everything的达人请进,该怎么处理
用过文件搜索引擎everything的达人请进
因为程序需要做一次搜索本地硬盘的工作,因此在下学习了一下著名的文件搜索引擎Everything,下载了它的SDK开发包。
然后在网上找了一下类似的学习资料,依样画葫芦的在本机弄了一个进行调试,发现它所给的库和引擎都做了很好的封装,于是直接使用,下面是我写的代码:
Everything.h头文件中,它原本的函数声明都是类似这样的,结果发现无法进行编译:
于是我将其改成了
这样就通过了编译可以运行了。
然后在stdafx.h中包含头文件和库
程序执行
结果运行时发现一点反应都没有,经过调试发现Everything_QueryA()执行不成功,Everything_GetLastError()错误代码2,查询了一下说明,结果说是“IPC is not available. Make sure Everything is running. ”。
这就完全不能理解了……看起来我和别人的代码没区别啊,IPC它又说是什么“Inter Process Communication”进程间通信,我查了半天都没查到问题所在……Everything的论坛也找不到注册的地方,而且看起来也完全没人回答问题。实在没办法到这里来试一下运气,看看有没有用过Everything的达人能指点一下:我遇到的这个问题该如何解决...各位用过的人又是如何处理的等等……
这是我的项目文件
------解决方案--------------------
API不可以实现么?还是要追求速度?
------解决方案--------------------
而且笨重的索引页浪费硬盘空间,不要使用。Everything用过,的确很快。有空看看SDK。
因为程序需要做一次搜索本地硬盘的工作,因此在下学习了一下著名的文件搜索引擎Everything,下载了它的SDK开发包。
然后在网上找了一下类似的学习资料,依样画葫芦的在本机弄了一个进行调试,发现它所给的库和引擎都做了很好的封装,于是直接使用,下面是我写的代码:
Everything.h头文件中,它原本的函数声明都是类似这样的,结果发现无法进行编译:
__declspec(dllimport) void __stdcall Everything_SetSearchW(LPCWSTR lpString);
于是我将其改成了
extern "C" __declspec(dllimport) void __stdcall Everything_SetSearchW(LPCWSTR lpString);
这样就通过了编译可以运行了。
然后在stdafx.h中包含头文件和库
#include "../Everything-SDK/include/Everything.h"
#include "../Everything-SDK/ipc/Everything_IPC.h"
#pragma comment(lib, "../Everything-SDK/lib/Everything.lib")
程序执行
void CtestDlg::OnBnClickedButtonTest()
{
::Everything_SetSearchA(_T("test.exe"));
if (TRUE != ::Everything_QueryA(FALSE))
{
int Ret = ::Everything_GetLastError();
return;
}
int Num = ::Everything_GetNumFileResults();
CString szResult;
for (int i = 0; i < Num; ++ i)
{
szResult = ::Everything_GetResultPathA(i);
Msg(szResult.GetBuffer());
}
}
结果运行时发现一点反应都没有,经过调试发现Everything_QueryA()执行不成功,Everything_GetLastError()错误代码2,查询了一下说明,结果说是“IPC is not available. Make sure Everything is running. ”。
这就完全不能理解了……看起来我和别人的代码没区别啊,IPC它又说是什么“Inter Process Communication”进程间通信,我查了半天都没查到问题所在……Everything的论坛也找不到注册的地方,而且看起来也完全没人回答问题。实在没办法到这里来试一下运气,看看有没有用过Everything的达人能指点一下:我遇到的这个问题该如何解决...各位用过的人又是如何处理的等等……
这是我的项目文件
------解决方案--------------------
API不可以实现么?还是要追求速度?
------解决方案--------------------
而且笨重的索引页浪费硬盘空间,不要使用。Everything用过,的确很快。有空看看SDK。