I have tried for a long time, and the DLL is loaded correctly, but I still cannot connect to the IPC channel of Everything 1.5a through SDK3. However, I can see "Everything IPC (1.5a)" in my IPC list. I’m not sure what the reason could be.
#include <stdio.h>
#define WIN32_LEAN_AND_MEAN
#define EVERYTHING3_USERAPI
#include <windows.h>
#include "..\include\Everything3.h"
int main(int argc, char** argv) {
EVERYTHING3_CLIENT* client;
printf("SDK test\n");
HMODULE hDll = LoadLibrary(L"Everything3_x64.dll");
if (hDll == NULL) {
DWORD lastError = GetLastError();
printf("Failed to load DLL. Error code: %lu\n", lastError);
return -1;
}
printf("DLL loaded successfully.\n");
printf("Attempting to connect to Everything service...\n");
client = Everything3_Connect(NULL); // 尝试默认管道
if (!client) {
printf("Failed to connect to Everything service.\n");
DWORD last_error = GetLastError();
printf("GetLastError returned: %lu\n", last_error);
printf("Possible causes:\n");
printf("1. Everything is not running.\n");
printf("2. IPC is not enabled in Everything settings.\n");
printf("3. DLL or pipe configuration mismatch.\n");
printf("4. Insufficient permissions.\n");
// 显式指定管道名称重试
printf("Retrying with explicit pipe name...\n");
client = Everything3_Connect(L"Everything IPC (1.5a)");
if (!client) {
printf("Failed to connect to Everything IPC (1.5a).\n");
return -1;
}
}
printf("Successfully connected to Everything service.\n");
DWORD ipc_pipe_version = Everything3_GetIPCPipeVersion(client);
printf("IPC pipe version: %d\n", ipc_pipe_version);
Everything3_DestroyClient(client);
return 0;
}
#include <stdio.h>
#define WIN32_LEAN_AND_MEAN
#define EVERYTHING3_USERAPI
#include <windows.h>
#include "..\include\Everything3.h"
int main(int argc, char** argv) {
EVERYTHING3_CLIENT* client;
printf("SDK test\n");
HMODULE hDll = LoadLibrary(L"Everything3_x64.dll");
if (hDll == NULL) {
DWORD lastError = GetLastError();
printf("Failed to load DLL. Error code: %lu\n", lastError);
return -1;
}
printf("DLL loaded successfully.\n");
printf("Attempting to connect to Everything service...\n");
client = Everything3_Connect(NULL); // 尝试默认管道
if (!client) {
printf("Failed to connect to Everything service.\n");
DWORD last_error = GetLastError();
printf("GetLastError returned: %lu\n", last_error);
printf("Possible causes:\n");
printf("1. Everything is not running.\n");
printf("2. IPC is not enabled in Everything settings.\n");
printf("3. DLL or pipe configuration mismatch.\n");
printf("4. Insufficient permissions.\n");
// 显式指定管道名称重试
printf("Retrying with explicit pipe name...\n");
client = Everything3_Connect(L"Everything IPC (1.5a)");
if (!client) {
printf("Failed to connect to Everything IPC (1.5a).\n");
return -1;
}
}
printf("Successfully connected to Everything service.\n");
DWORD ipc_pipe_version = Everything3_GetIPCPipeVersion(client);
printf("IPC pipe version: %d\n", ipc_pipe_version);
Everything3_DestroyClient(client);
return 0;
}
Statistics: Posted by shihonglei — Fri Dec 27, 2024 10:57 am