Skip to content

注意

該版本已過時。建議查看最新的 Xdows Security 5 版本。

Main.dll

簡介

Main.dll 為 Xdows Tools 實際呼叫的DLL

Xdows Tools 通過呼叫這個DLL來實現外掛功能

Main.dll 通常是在 外掛名\Files\Main.dll 文件

注意

在編譯DLL時盡量選擇目標 Xdows Security 的架構(一般為 x86 架構)

不同的架構可能會導致執行效率慢崩潰問題

重要

以下DLL程式中的必須存在

如果不存在,程式將會崩潰

SetUIHtml

名稱返回類型注明
SetUIHtml文字該函數定義在 Xdows Tools 中載入的 Html 文件

該函數沒有參數,如有參數則程式崩潰

cpp
// 由 DeepSeek 翻譯,可能需要進行修改

#include <string>
#include <fstream>
#include <filesystem>

std::string SetUIHtml() {
    // 請把 "Name" 替換為外掛名,把 "HtmlFiles" 替換為需要顯示的 Html 文件名
    using namespace std::filesystem;
    auto path = current_path() / "Plugins\\Name\\Files\\HtmlFiles.html";
    return std::string(std::istreambuf_iterator<char>(std::ifstream(path).rdbuf()),
                        std::istreambuf_iterator<char>() );
}
c
// 由 DeepSeek 翻譯,可能需要進行修改

#include <windows.h>
#include <stdio.h>

char* SetUIHtml() {
    // 請把 "Name" 替換為外掛名,把 "HtmlFiles" 替換為需要顯示的 Html 文件名
    char path[MAX_PATH];
    sprintf(path, "%s\\Plugins\\Name\\Files\\HtmlFiles.html",
            GetModuleHandle(NULL) ? "" : ""); // 獲取當前目錄的巧妙方式

    HANDLE hFile = CreateFileA(path, GENERIC_READ, FILE_SHARE_READ, NULL,
                              OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hFile == INVALID_HANDLE_VALUE) return NULL;

    DWORD size = GetFileSize(hFile, NULL);
    char* buf = (char*)malloc(size + 1);
    ReadFile(hFile, buf, size, &size, NULL);
    buf[size] = 0;
    CloseHandle(hFile);
    return buf;
}

/* 使用後需 free() 釋放記憶體 */
py
# 由 DeepSeek 翻譯,可能需要進行修改

import os

def set_ui_html() -> str:
    # 請把 "Name" 替換為外掛名,把 "HtmlFiles" 替換為需要顯示的 Html 文件名,把 "utf-8" 替換為文件編碼
    file_path = os.path.join(os.getcwd(), "Plugins", "Name", "Files", "HtmlFiles.html")
    with open(file_path, 'r', encoding='utf-8') as f:
        return f.read()
EPL
.版本 2

.子程序 SetUIHtml, 文字型, 公開

' 請把 "Name" 替換為外掛名,把 "HtmlFiles" 替換為需要顯示的 Html 文件名
返回 (到文字 (讀入文件 (取運行目錄 () + "\Plugins\Name\Files\HtmlFiles.html")))
txt
// 示例偽代碼,可能需要根據實際需求調整

函數 SetUIHtml 返回 文字型
    定義 文件路徑 = 目前目錄 + "\Plugins\Name\Files\HtmlFiles.html"
    打開 文件路徑 為 唯讀
    如果 文件存在
        返回 讀取文件內容
    否則
        返回 空文字
    結束
結束函數

SetUITitle

名稱返回類型注明
SetUITitle文字該函數定義在 Xdows Tools 中顯示的標題

該函數沒有參數

c
// 由 DeepSeek 翻譯,可能需要進行修改

const char* SetUITitle() {
 return "PluginsTitle";
}
py
# 由 DeepSeek 翻譯,可能需要進行修改

def SetUITitle():
 return "PluginsTitle"
txt
// 示例偽代碼,可能需要根據實際需求進行調整。

函數 SetUITitle 返回 文字型
    返回 "PluginsTitle"
結束函數

GetInfo

名稱返回類型注明
GetInfo文字該函數定義在 Xdows Tools 功能主頁 顯示的簡介

該函數沒有參數,如有參數則程式崩潰

c
// 由 DeepSeek 翻譯,可能需要進行修改

const char* GetInfo() {
 return "PluginsInfo";
}
py
# 由 DeepSeek 翻譯,可能需要進行修改

def GetInfo():
 return "PluginsInfo"
txt
.版本 2

.子程序 GetInfo, 文字型, 公開

返回 ("PluginsInfo")
txt
// 示例偽代碼,可能需要根據實際需求進行調整。

函數 GetInfo 返回 文字型
    返回 "PluginsInfo"
結束函數

ScanFiles

重要

該函數將在之後啟用

為保證相容新版本,建議編寫

名稱返回類型注明
ScanFiles文字該函數用於在掃描文件時外掛添加的額外引擎

如果未檢測到病毒或選擇忽略此功能請返回空文字

如果檢測到病毒請返回病毒名稱

該函數的參數如下

名稱類型注明
Path文字預掃描的文件名稱。不可空,無需處理相關問題

Html檔案內呼叫

你可以使用 Http 訪問來呼叫DLL

const Http = new XMLHttpRequest();
Http.open("GET", '/Function/外掛名-調用函數/?參數1=參數內容&參數2=參數內容',false);
Http.send();

重要

參數最多只能有 2 個

多餘參數將會被忽略

呼叫的DLL函數返回值必須為 文字 型(不需要可返回空文字),參數必須為 文字 型

其它類型將會崩潰