⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 WDM驱动开发的辅助工具 非常好用 欢迎大家下载
💻 CPP
字号:
#include <windows.h>
#include <TCHAR.H>
#include "resource.h"
#include "Define.h"
#include "Common.h"
#include "DlgOption.h"
#include "DlgMain.h"

#pragma comment(lib, "common.lib")
SYSTEM  g_Sys = {0};

INT WINAPI WinMain (HINSTANCE hInstance, HINSTANCE, LPSTR, INT)
{   TCHAR caBuffer[MAX_STRING]  = {0};
    TCHAR caFileName[_MAX_PATH] = {0};

    g_Sys.hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
    if (NULL == g_Sys.hSCManager){
        GetErrorMessage(caBuffer, MAX_STRING, GetLastError());
        FMessageBox(g_Sys.hWnd, MB_ICONWARNING, _T("WDMbuild"),
            _T("%s%s\n%s"), _T("打开 Windows 服务控制管理器连接失败:"),
            caBuffer,
            _T("驱动程序 \"安装\\启动\" 和 \"卸载\\停止\" 功能将不可用!") );
    }
    g_Sys.hModule = hInstance;
    g_Sys.hIcon   = LoadIcon(hInstance, LPTSTR(IDI_ICON));
    GetModuleFileName(hInstance, caFileName, _MAX_PATH);
    DecomposeFileName(caFileName, g_Sys.caPath, g_Sys.caName, NULL);
    MakeFileName(caFileName, g_Sys.caPath, CALLDDK_FNAME, NULL);
    if ( !WriteResourceToFile(caFileName,
            hInstance,
            LPTSTR(IDR_CALLDDK),
            _T("FILE")) ){
        GetErrorMessage(caBuffer, MAX_STRING, GetLastError());
        FMessageBox(g_Sys.hWnd, MB_ICONERROR, _T("WDMbuild"),
            _T("创建 \"%s\" 文件失败:%s"),
            caFileName, caBuffer);
        return -1;
    }
    if ( !LoadOption(&(g_Sys.Option)) ){
        GetErrorMessage(caBuffer, MAX_STRING, GetLastError());
        FMessageBox(g_Sys.hWnd, MB_ICONWARNING, _T("WDMbuild"),
            _T("载入配置文件 %s\\%s 失败:%s"),
            g_Sys.caPath, OPTION_FNAME, caBuffer);
    }
    else{
        if ( IsOptionError(NULL, NULL, &(g_Sys.Option)) ){
            FMessageBox(g_Sys.hWnd, MB_ICONWARNING, _T("WDMbuild"),
                _T("配置文件内容错误:%s\\%s\n\n请重新设置!"),
                g_Sys.caPath, OPTION_FNAME);
        }
    }
    if ( -1 == DialogBox(hInstance, LPTSTR(IDD_MAIN), g_Sys.hWnd, DlgMain) ){
        GetErrorMessage(caBuffer, MAX_STRING, GetLastError());
        FMessageBox(g_Sys.hWnd, MB_ICONERROR, _T("WDMbuild"),
            _T("创建对话框失败:%s"),
            caBuffer);
        return -1;
    }
    CloseServiceHandle(g_Sys.hSCManager);
    MakeFileName(caFileName, g_Sys.caPath, CALLDDK_FNAME, NULL);
    DeleteFile(caFileName);
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -