Files
GdCpp12/include/sApp.h

63 lines
1.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#include "GdCPP_Exports.h"
#include "IpHelper.h"
struct GDCPP_API sApp
{
// 当前执行文件的完整路径
fs::path ExeFullPath;
// 当前执行exe所在目录
fs::path ExeDir;
// Exe文件名可以根据不同名称执行不同的内容
std::wstring wstrExeName;
// 工作目录是Log、Setting目录的主目录
// 初始化默认等于ExeDir。
// 如果exe所在目录是Debug或ReleaseExeDir就上移一层到x64
// 应用层可以另外指定工作目录
fs::path WorkDir;
// 参数目录默认为WorkDir下的Setting。应用层可以另外指定
fs::path SettingDir;
// Log目录默认为WorkDir下的Log。应用层可以另外指定
fs::path LogDir;
// exe文件的版本
std::wstring exeFileVerStr;
std::wstring exeProductVerStr;
// exe的HINSTANCE
HINSTANCE hInstance_Exe=0;
CAdapterList NetAdapter;
// @brief 跟具体应用关系不大的常规初始操作与应用相关的放到init()。
// 初始化CTick获取exe路径设置工作目录、Log目录、Dump。在InitInstance()开头调用
// @return 是否有错。没错返回0已知错误
virtual int preInit();
// 与应用相关的初始化,每个应用相差很大,
// 继承类不需要调用sApp::init(),只是给个参考。
// 通常先调整工作目录初始化Log后面的操作都需要用到Log了
virtual int init();
virtual int deinit();
// 初始化gdi用到的变量
// 保存下来用于在deinit()里判断是否初始化过gdi
ULONG_PTR m_gdiplusToken=0;
// 初始化socket用到的变量
// 保存下来用于在deinit()里用判断是否初始化过socket
WSADATA wsaData={0,0};
void initGDI();
bool initSocket();
virtual void RestartWindows();
virtual void ShutdownWindows();
};