0
0
mirror of https://github.com/ok-oldking/ok-wuthering-waves.git synced 2025-04-24 08:25:16 +00:00

Merge branch 'test_build_exe'

# Conflicts:
#	.github/workflows/build.yml
This commit is contained in:
firedcto@gmail.com 2025-04-04 20:58:53 +08:00
commit 7a28b4d514
17 changed files with 565 additions and 3 deletions

View File

@ -29,7 +29,8 @@ jobs:
echo "action_state=yellow" >> $env:GITHUB_ENV
echo "${{ env.action_state }}"
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
@ -79,6 +80,39 @@ jobs:
python -m unittest $_.FullName
}
- name: Set up MSBuild
uses: microsoft/setup-msbuild@v2
- name: Build OK-EXE
run: |
cp icon.ico src-win-launcher\icon.ico
cd src-win-launcher
msbuild ok-launcher.sln /p:Configuration=Release
cd ..
cp src-win-launcher/x64/Release/ok-ww.exe .
- name: upload-unsigned-artifact
id: upload-unsigned-artifact
uses: actions/upload-artifact@v4
with:
name: to-sign
path: |
ok-ww.exe
ok/
src/
- name : sign OK-EXE
uses: signpath/github-action-submit-signing-request@v1.1
with:
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
organization-id: '639bc6dd-9623-43cd-ac75-50a445898012'
project-slug: 'ok-wuthering-waves'
signing-policy-slug: 'release-signing'
artifact-configuration-slug: "zip"
github-artifact-id: '${{ steps.upload-unsigned-artifact.outputs.artifact-id }}'
wait-for-completion: true
output-artifact-directory: '.'
- name: Build Executable
run: |
echo "tag: ${{ steps.changes.outputs.tag }}"
@ -98,10 +132,10 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
body: |
ok-ww-CPU-full (AMD or other GPUs)
ok-ww
Updates
${{ steps.changes.outputs.changes }}
draft: false
draft: true
prerelease: false
files: |
ok-ww-${{ steps.tagName.outputs.tag }}.7z

58
.github/workflows/test_signpath.yml vendored Normal file
View File

@ -0,0 +1,58 @@
name: Test SignPath
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- 't*'
jobs:
build:
name: Build exe with launcher
runs-on: windows-latest
steps:
- name: Set Version
env:
VERSION: 0.0.1
run: echo "Version is set to $VERSION"
- uses: actions/checkout@v4
- name: Set up MSBuild
uses: microsoft/setup-msbuild@v2
- name: Build OK-EXE
run: |
cp icon.ico src-win-launcher\icon.ico
cd src-win-launcher
msbuild ok-launcher.sln /p:Configuration=Release
cd ..
cp src-win-launcher/x64/Release/ok-ww.exe .
- name: upload-unsigned-artifact
id: upload-unsigned-artifact
uses: actions/upload-artifact@v4
with:
name: to-sign
path: |
ok-ww.exe
ok/
src/
- name : sign OK-EXE
uses: signpath/github-action-submit-signing-request@v1.1
with:
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
organization-id: '639bc6dd-9623-43cd-ac75-50a445898012'
project-slug: 'ok-wuthering-waves'
signing-policy-slug: 'test-signing'
artifact-configuration-slug: "zip"
github-artifact-id: '${{ steps.upload-unsigned-artifact.outputs.artifact-id }}'
wait-for-completion: true
output-artifact-directory: '.'
- name: upload-signed-artifact
id: upload-signed-artifact
uses: actions/upload-artifact@v4
with:
path: ok-ww.exe

0
.gitmodules vendored Normal file
View File

BIN
icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
ok-ww.exe

Binary file not shown.

5
src-win-launcher/.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
.vs/
ok-launcher/x64/
x64/
ok-launcher/Release/
logs/

View 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>

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View 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;
}

View 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

View 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>

View 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>

View 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

Binary file not shown.

BIN
src-win-launcher/re.rc Normal file

Binary file not shown.

View 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