用过资料搜索引擎everything的达人请进

用过文件搜索引擎everything的达人请进
因为程序需要做一次搜索本地硬盘的工作,因此在下学习了一下著名的文件搜索引擎Everything,下载了它的SDK开发包。

然后在网上找了一下类似的学习资料,依样画葫芦的在本机弄了一个进行调试,发现它所给的库和引擎都做了很好的封装,于是直接使用,下面是我写的代码:

Everything.h头文件中,它原本的函数声明都是类似这样的,结果发现无法进行编译:
C/C++ code

__declspec(dllimport) void __stdcall Everything_SetSearchW(LPCWSTR lpString);


于是我将其改成了
C/C++ code

extern "C" __declspec(dllimport) void __stdcall Everything_SetSearchW(LPCWSTR lpString);


这样就通过了编译可以运行了。

然后在stdafx.h中包含头文件和库
C/C++ code

#include "../Everything-SDK/include/Everything.h"
#include "../Everything-SDK/ipc/Everything_IPC.h"
#pragma comment(lib, "../Everything-SDK/lib/Everything.lib")



程序执行
C/C++ code

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不可以实现么?还是要追求速度?
------解决方案--------------------
探讨
引用:
API不可以实现么?还是要追求速度?

主要就是为了追求速度呀……
缺省的API第一次搜索时建立索引和查询的速度太慢了