mirror of
https://github.com/ok-oldking/ok-wuthering-waves.git
synced 2025-04-24 08:25:16 +00:00
add c++ launcher code
This commit is contained in:
parent
520404dca2
commit
1351f29b7f
31
.github/workflows/build_launcher_exe.yml
vendored
Normal file
31
.github/workflows/build_launcher_exe.yml
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
name: Build VSCode Solution
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- test_build_exe
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Set up MSBuild
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
|
||||
- name: Build Solution
|
||||
run: |
|
||||
cp icon.ico src-win-launcher\icon.ico
|
||||
cd src-win-launcher
|
||||
msbuild ok-launcher.sln /p:Configuration=Release
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ok-ww-executable
|
||||
path: src-win-launcher/x64/Release/ok-ww.exe
|
0
.gitmodules
vendored
Normal file
0
.gitmodules
vendored
Normal file
5
src-win-launcher/.gitignore
vendored
Normal file
5
src-win-launcher/.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
.vs/
|
||||
ok-launcher/x64/
|
||||
x64/
|
||||
ok-launcher/Release/
|
||||
logs/
|
10
src-win-launcher/app.manifest
Normal file
10
src-win-launcher/app.manifest
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
</assembly>
|
7
src-win-launcher/configs/launcher.json
Normal file
7
src-win-launcher/configs/launcher.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"profile_name": "",
|
||||
"source": "Global",
|
||||
"app_dependencies_installed": false,
|
||||
"app_version": "v0.0.113",
|
||||
"launcher_version": "v0.0.113"
|
||||
}
|
BIN
src-win-launcher/icon.ico
Normal file
BIN
src-win-launcher/icon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 76 KiB |
185
src-win-launcher/ok-launcher.cpp
Normal file
185
src-win-launcher/ok-launcher.cpp
Normal file
@ -0,0 +1,185 @@
|
||||
#include <iostream>
|
||||
#include <windows.h>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include <regex>
|
||||
#include <codecvt>
|
||||
#include <vector>
|
||||
#include <sstream>
|
||||
|
||||
#pragma comment(linker, "/SUBSYSTEM:WINDOWS")
|
||||
#pragma comment(linker, "/ENTRY:mainCRTStartup")
|
||||
|
||||
std::wstring getAbsolutePath(const std::wstring& relativePath) {
|
||||
wchar_t fullPath[MAX_PATH];
|
||||
if (_wfullpath(fullPath, relativePath.c_str(), MAX_PATH) != NULL) {
|
||||
return std::wstring(fullPath);
|
||||
}
|
||||
else {
|
||||
MessageBoxW(NULL, L"Failed to get absolute path", L"Error", MB_OK);
|
||||
return relativePath; // Return the original path if conversion fails
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
std::string WideStringToUTF8(const std::wstring& wstr) {
|
||||
if (wstr.empty()) return std::string();
|
||||
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
|
||||
return conv.to_bytes(wstr);
|
||||
}
|
||||
|
||||
std::wstring UTF8ToWideString(const std::string& str) {
|
||||
if (str.empty()) return std::wstring();
|
||||
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
|
||||
return conv.from_bytes(str);
|
||||
}
|
||||
|
||||
bool modifyVenvCfg(const std::wstring& envDir, const std::wstring& relativPythonDir) {
|
||||
std::wstring absEnvDir = getAbsolutePath(envDir);
|
||||
std::wstring pythonDir = getAbsolutePath(relativPythonDir);
|
||||
std::wstring filePath = absEnvDir + L"\\pyvenv.cfg";
|
||||
|
||||
// Open the file in UTF-8 mode
|
||||
std::ifstream file(filePath, std::ios::in | std::ios::binary);
|
||||
if (!file.is_open()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
std::ostringstream contentStream;
|
||||
contentStream << file.rdbuf();
|
||||
std::string contentUTF8 = contentStream.str();
|
||||
file.close();
|
||||
|
||||
std::wstring content = UTF8ToWideString(contentUTF8);
|
||||
|
||||
// Modify the content using regex
|
||||
std::wregex homeRegex(LR"((\s*home\s*=\s*).*)");
|
||||
std::wregex executableRegex(LR"((\s*executable\s*=\s*).*)");
|
||||
std::wregex commandRegex(LR"((\s*command\s*=\s*).*)");
|
||||
|
||||
content = std::regex_replace(content, homeRegex, L"$1" + pythonDir);
|
||||
content = std::regex_replace(content, executableRegex, L"$1" + pythonDir + L"\\python.exe");
|
||||
content = std::regex_replace(content, commandRegex, L"$1" + pythonDir + L"\\python.exe -m venv " + absEnvDir);
|
||||
|
||||
// Convert the modified wide string back to UTF-8
|
||||
std::string contentModifiedUTF8 = WideStringToUTF8(content);
|
||||
|
||||
// Compare the original and modified content
|
||||
if (contentUTF8 != contentModifiedUTF8) {
|
||||
// Write the modified content back to the file in UTF-8
|
||||
std::ofstream outFile(filePath, std::ios::out | std::ios::binary);
|
||||
if (!outFile.is_open()) {
|
||||
MessageBoxW(NULL, L"Failed to open pyvenv.cfg file for writing", L"Error", MB_OK);
|
||||
return false;
|
||||
}
|
||||
|
||||
outFile.write(contentModifiedUTF8.c_str(), contentModifiedUTF8.size());
|
||||
outFile.close();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
std::wstring readAppVersion(const std::wstring& filePath) {
|
||||
std::wifstream file(filePath);
|
||||
if (!file.is_open()) {
|
||||
MessageBoxW(NULL, L"Failed to open JSON file", L"Error", MB_OK);
|
||||
return L"0.0.1"; // Default version if file read fails
|
||||
}
|
||||
|
||||
std::wstring content((std::istreambuf_iterator<wchar_t>(file)), std::istreambuf_iterator<wchar_t>());
|
||||
file.close();
|
||||
|
||||
std::wregex versionRegex(LR"(\"app_version\"\s*:\s*"([^"]+)\")");
|
||||
std::wsmatch match;
|
||||
if (std::regex_search(content, match, versionRegex)) {
|
||||
return match[1].str();
|
||||
}
|
||||
else {
|
||||
MessageBoxW(NULL, L"Failed to find launcher_version in JSON file", L"Error", MB_OK);
|
||||
return L"0.0.1"; // Default version if regex search fails
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
STARTUPINFO si = { sizeof(STARTUPINFO) };
|
||||
PROCESS_INFORMATION pi;
|
||||
ZeroMemory(&pi, sizeof(pi));
|
||||
|
||||
si.dwFlags = STARTF_USESHOWWINDOW;
|
||||
si.wShowWindow = SW_HIDE;
|
||||
|
||||
std::wstring appVersion = readAppVersion(L".\\configs\\launcher.json");
|
||||
|
||||
std::wstring command;
|
||||
|
||||
if (modifyVenvCfg(L".\\repo\\" + appVersion + L"\\.venv", L".\\python\\")) {
|
||||
command = L".\\repo\\" + appVersion + L"\\.venv\\Scripts\\python.exe .\\repo\\" + appVersion + L"\\main.py";
|
||||
}
|
||||
else {
|
||||
//check if the .venv\Scripts\python.exe exists if exists, use it instead
|
||||
std::wstring pythonPath = L".\\.venv\\Scripts\\python.exe";
|
||||
if (GetFileAttributesW(pythonPath.c_str()) != INVALID_FILE_ATTRIBUTES && !(GetFileAttributesW(pythonPath.c_str()) & FILE_ATTRIBUTE_DIRECTORY)) {
|
||||
command = pythonPath + L" main.py";
|
||||
}
|
||||
else {
|
||||
MessageBoxW(NULL, L"Failed to open pyvenv.cfg file or python env does not exist", L"Error", MB_OK);
|
||||
}
|
||||
}
|
||||
|
||||
// Append command-line arguments
|
||||
for (int i = 1; i < argc; ++i) {
|
||||
command += L" \"";
|
||||
std::string argStr(argv[i]);
|
||||
std::wstring wargStr(argStr.begin(), argStr.end());
|
||||
command += wargStr;
|
||||
command += L"\"";
|
||||
}
|
||||
|
||||
SetEnvironmentVariableW(L"PYTHONHOME", NULL);
|
||||
SetEnvironmentVariableW(L"PYTHONPATH", NULL);
|
||||
SetEnvironmentVariableW(L"PYTHONIOENCODING", L"utf-8");
|
||||
|
||||
HANDLE hStdOutRead, hStdOutWrite;
|
||||
SECURITY_ATTRIBUTES sa = { sizeof(SECURITY_ATTRIBUTES), NULL, TRUE };
|
||||
CreatePipe(&hStdOutRead, &hStdOutWrite, &sa, 0);
|
||||
SetHandleInformation(hStdOutRead, HANDLE_FLAG_INHERIT, 0);
|
||||
|
||||
si.dwFlags |= STARTF_USESTDHANDLES;
|
||||
si.hStdOutput = hStdOutWrite;
|
||||
si.hStdError = hStdOutWrite;
|
||||
|
||||
if (CreateProcessW(NULL, &command[0], NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi)) {
|
||||
DWORD waitResult = WaitForSingleObject(pi.hProcess, 1000);
|
||||
DWORD exitCode = 0;
|
||||
GetExitCodeProcess(pi.hProcess, &exitCode);
|
||||
|
||||
DWORD bytesRead;
|
||||
CHAR buffer[4096];
|
||||
std::vector<CHAR> output;
|
||||
while (true) {
|
||||
DWORD bytesAvailable = 0;
|
||||
PeekNamedPipe(hStdOutRead, NULL, 0, NULL, &bytesAvailable, NULL);
|
||||
if (bytesAvailable == 0) break;
|
||||
if (ReadFile(hStdOutRead, buffer, sizeof(buffer), &bytesRead, NULL) && bytesRead > 0) {
|
||||
output.insert(output.end(), buffer, buffer + bytesRead);
|
||||
}
|
||||
}
|
||||
std::string stdoutStr(output.begin(), output.end());
|
||||
std::wstring wstdoutStr(stdoutStr.begin(), stdoutStr.end());
|
||||
|
||||
if (exitCode != 0 && exitCode != 259) {
|
||||
MessageBoxW(NULL, wstdoutStr.c_str(), L"Process Output (Error)", MB_OK);
|
||||
}
|
||||
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
}
|
||||
else {
|
||||
MessageBoxW(NULL, L"Failed to create process", L"Error", MB_OK);
|
||||
}
|
||||
|
||||
CloseHandle(hStdOutRead);
|
||||
CloseHandle(hStdOutWrite);
|
||||
|
||||
return 0;
|
||||
}
|
31
src-win-launcher/ok-launcher.sln
Normal file
31
src-win-launcher/ok-launcher.sln
Normal file
@ -0,0 +1,31 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.11.35222.181
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ok-launcher", "ok-launcher.vcxproj", "{6D6F3863-5153-400E-97CF-DD6DE795E5B6}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6D6F3863-5153-400E-97CF-DD6DE795E5B6}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6D6F3863-5153-400E-97CF-DD6DE795E5B6}.Debug|x64.Build.0 = Debug|x64
|
||||
{6D6F3863-5153-400E-97CF-DD6DE795E5B6}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{6D6F3863-5153-400E-97CF-DD6DE795E5B6}.Debug|x86.Build.0 = Debug|Win32
|
||||
{6D6F3863-5153-400E-97CF-DD6DE795E5B6}.Release|x64.ActiveCfg = Release|x64
|
||||
{6D6F3863-5153-400E-97CF-DD6DE795E5B6}.Release|x64.Build.0 = Release|x64
|
||||
{6D6F3863-5153-400E-97CF-DD6DE795E5B6}.Release|x86.ActiveCfg = Release|Win32
|
||||
{6D6F3863-5153-400E-97CF-DD6DE795E5B6}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {B3B30BE3-86E8-4579-A151-FF27A46F0A2F}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
164
src-win-launcher/ok-launcher.vcxproj
Normal file
164
src-win-launcher/ok-launcher.vcxproj
Normal file
@ -0,0 +1,164 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>17.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{6d6f3863-5153-400e-97cf-dd6de795e5b6}</ProjectGuid>
|
||||
<RootNamespace>oklauncher</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
<TargetName>ok-ww</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<TargetName>ok-ww</TargetName>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ManifestFile>
|
||||
</ManifestFile>
|
||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||
<UACUIAccess>false</UACUIAccess>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<GenerateCatalogFiles />
|
||||
</Manifest>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>Default</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ManifestFile>
|
||||
</ManifestFile>
|
||||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
||||
</Link>
|
||||
<Manifest>
|
||||
<GenerateCatalogFiles />
|
||||
</Manifest>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="ok-launcher.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="resource.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="re.rc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
32
src-win-launcher/ok-launcher.vcxproj.filters
Normal file
32
src-win-launcher/ok-launcher.vcxproj.filters
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="ok-launcher.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="resource.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="re.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
20
src-win-launcher/ok-launcher.vcxproj.user
Normal file
20
src-win-launcher/ok-launcher.vcxproj.user
Normal file
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LocalDebuggerWorkingDirectory>C:\Users\ok\Downloads\ok-ww中文</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LocalDebuggerWorkingDirectory>F:\projects\ok-gi</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
<LocalDebuggerCommandArguments>-t 1</LocalDebuggerCommandArguments>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LocalDebuggerWorkingDirectory>C:\Users\ok\Downloads\ok-ww中文</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LocalDebuggerWorkingDirectory>C:\Users\ok\Downloads\ok-ww中文</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
</Project>
|
BIN
src-win-launcher/re.aps
Normal file
BIN
src-win-launcher/re.aps
Normal file
Binary file not shown.
BIN
src-win-launcher/re.rc
Normal file
BIN
src-win-launcher/re.rc
Normal file
Binary file not shown.
16
src-win-launcher/resource.h
Normal file
16
src-win-launcher/resource.h
Normal file
@ -0,0 +1,16 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by re.rc
|
||||
//
|
||||
#define IDI_ICON1 101
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 102
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user