From 9d0c8da310b265a2a2a76189654638dda0a026cd Mon Sep 17 00:00:00 2001 From: Glavo Date: Sun, 20 Apr 2025 11:52:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=86=E5=88=86=20HMCLauncher=20=E8=87=B3?= =?UTF-8?q?=E7=8B=AC=E7=AB=8B=E9=A1=B9=E7=9B=AE=20(#3840)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-launcher.yml | 46 ---- .github/workflows/gradle.yml | 1 - .gitignore | 1 - HMCL/build.gradle.kts | 53 +++-- .../src/main/resources/assets/HMCLauncher.exe | Bin 147968 -> 0 bytes HMCLauncher/.clang-format | 4 - HMCLauncher/.gitignore | 5 - HMCLauncher/CMakeLists.txt | 18 -- HMCLauncher/HMCL/HMCL.ico | Bin 50645 -> 0 bytes HMCLauncher/HMCL/HMCL.rc | 143 ------------ HMCLauncher/HMCL/HMCL.vcxproj | 192 ----------------- HMCLauncher/HMCL/HMCL.vcxproj.filters | 70 ------ HMCLauncher/HMCL/HMCL.vcxproj.user | 4 - HMCLauncher/HMCL/Version.cpp | 16 -- HMCLauncher/HMCL/Version.h | 31 --- HMCLauncher/HMCL/java.cpp | 84 -------- HMCLauncher/HMCL/java.h | 9 - HMCLauncher/HMCL/lang.h | 12 -- HMCLauncher/HMCL/main.cpp | 155 ------------- HMCLauncher/HMCL/main.h | 3 - HMCLauncher/HMCL/os.cpp | 203 ------------------ HMCLauncher/HMCL/os.h | 47 ---- HMCLauncher/HMCL/resource.h | 25 --- HMCLauncher/HMCL/stdafx.cpp | 8 - HMCLauncher/HMCL/stdafx.h | 7 - HMCLauncher/HMCL/targetver.h | 8 - HMCLauncher/HMCLauncher.sln | 25 --- 27 files changed, 38 insertions(+), 1132 deletions(-) delete mode 100644 .github/workflows/build-launcher.yml delete mode 100644 HMCL/src/main/resources/assets/HMCLauncher.exe delete mode 100644 HMCLauncher/.clang-format delete mode 100644 HMCLauncher/.gitignore delete mode 100644 HMCLauncher/CMakeLists.txt delete mode 100644 HMCLauncher/HMCL/HMCL.ico delete mode 100644 HMCLauncher/HMCL/HMCL.rc delete mode 100644 HMCLauncher/HMCL/HMCL.vcxproj delete mode 100644 HMCLauncher/HMCL/HMCL.vcxproj.filters delete mode 100644 HMCLauncher/HMCL/HMCL.vcxproj.user delete mode 100644 HMCLauncher/HMCL/Version.cpp delete mode 100644 HMCLauncher/HMCL/Version.h delete mode 100644 HMCLauncher/HMCL/java.cpp delete mode 100644 HMCLauncher/HMCL/java.h delete mode 100644 HMCLauncher/HMCL/lang.h delete mode 100644 HMCLauncher/HMCL/main.cpp delete mode 100644 HMCLauncher/HMCL/main.h delete mode 100644 HMCLauncher/HMCL/os.cpp delete mode 100644 HMCLauncher/HMCL/os.h delete mode 100644 HMCLauncher/HMCL/resource.h delete mode 100644 HMCLauncher/HMCL/stdafx.cpp delete mode 100644 HMCLauncher/HMCL/stdafx.h delete mode 100644 HMCLauncher/HMCL/targetver.h delete mode 100644 HMCLauncher/HMCLauncher.sln diff --git a/.github/workflows/build-launcher.yml b/.github/workflows/build-launcher.yml deleted file mode 100644 index d0598ff3e..000000000 --- a/.github/workflows/build-launcher.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Build HMCLauncher - -on: - push: - paths: - - 'HMCLauncher/**' - - '.github/workflows/build-launcher.yml' - pull_request: - paths: - - 'HMCLauncher/**' - - '.github/workflows/build-launcher.yml' - -jobs: - build: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - - name: Add msbuild to PATH - uses: microsoft/setup-msbuild@v2 - with: - msbuild-architecture: x86 - - name: Build HMCLauncher - run: msbuild /p:Configuration=Release /t:Rebuild /verbosity:detailed .\HMCLauncher\ - - name: Copy HMCLauncher to assets - run: Copy-Item .\HMCLauncher\Release\HMCLauncher.exe -Destination .\HMCL\src\main\resources\assets\HMCLauncher.exe - - name: Set up JDK 11 - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: '11' - java-package: 'jdk+fx' - - name: Build with Gradle - run: .\gradlew makeExecutables --no-daemon - env: - MICROSOFT_AUTH_ID: ${{ secrets.MICROSOFT_AUTH_ID }} - MICROSOFT_AUTH_SECRET: ${{ secrets.MICROSOFT_AUTH_SECRET }} - CURSEFORGE_API_KEY: ${{ secrets.CURSEFORGE_API_KEY }} - - name: Get short SHA - run: echo "SHORT_SHA=$("${{ github.sha }}".SubString(0, 7))" >> $env:GITHUB_ENV - - name: Copy HMCLauncher to libs - run: Copy-Item .\HMCLauncher\Release\HMCLauncher.exe -Destination .\HMCL\build\libs\HMCLauncher.exe - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: HMCLauncher-${{ env.SHORT_SHA }} - path: HMCL/build/libs/*.exe diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index acc107f82..2a2217ec3 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -5,7 +5,6 @@ on: pull_request: paths-ignore: - '**.md' - - 'HMCLauncher/**' jobs: build: diff --git a/.gitignore b/.gitignore index ebf00fe4c..010c85963 100644 --- a/.gitignore +++ b/.gitignore @@ -42,7 +42,6 @@ minecraft-exported-crash-info* .nb-gradle *.exe -!/HMCL/src/main/resources/assets/HMCLauncher.exe # macos .DS_Store diff --git a/HMCL/build.gradle.kts b/HMCL/build.gradle.kts index e1928bed2..f84199231 100644 --- a/HMCL/build.gradle.kts +++ b/HMCL/build.gradle.kts @@ -33,12 +33,18 @@ val microsoftAuthId = System.getenv("MICROSOFT_AUTH_ID") ?: "" val microsoftAuthSecret = System.getenv("MICROSOFT_AUTH_SECRET") ?: "" val curseForgeApiKey = System.getenv("CURSEFORGE_API_KEY") ?: "" +val launcherExe = System.getenv("HMCL_LAUNCHER_EXE") + version = "$versionRoot.$buildNumber" dependencies { implementation(project(":HMCLCore")) implementation("libs:JFoenix") implementation("com.twelvemonkeys.imageio:imageio-webp:3.12.0") + + if (launcherExe == null) { + implementation("org.glavo.hmcl:HMCLauncher:3.6.0.1") + } } fun digest(algorithm: String, bytes: ByteArray): ByteArray = MessageDigest.getInstance(algorithm).digest(bytes) @@ -154,23 +160,18 @@ tasks.getByName("sha } } + if (launcherExe != null) { + into("assets") { + from(file(launcherExe)) + } + } + doLast { attachSignature(jarPath) createChecksum(jarPath) } } -fun createExecutable(suffix: String, header: String) { - val output = File(jarPath.parentFile, jarPath.nameWithoutExtension + '.' + suffix) - - output.outputStream().use { - it.write(File(project.projectDir, header).readBytes()) - it.write(jarPath.readBytes()) - } - - createChecksum(output) -} - tasks.processResources { into("META-INF/versions/11") { from(sourceSets["java11"].output) @@ -179,10 +180,30 @@ tasks.processResources { } val makeExecutables = tasks.create("makeExecutables") { + val extensions = listOf("exe", "sh") + dependsOn(tasks.jar) + + inputs.file(jarPath) + outputs.files(extensions.map { File(jarPath.parentFile, jarPath.nameWithoutExtension + '.' + it) }) + doLast { - createExecutable("exe", "src/main/resources/assets/HMCLauncher.exe") - createExecutable("sh", "src/main/resources/assets/HMCLauncher.sh") + val jarContent = jarPath.readBytes() + + ZipFile(jarPath).use { zipFile -> + for (extension in extensions) { + val output = File(jarPath.parentFile, jarPath.nameWithoutExtension + '.' + extension) + val entry = zipFile.getEntry("assets/HMCLauncher.$extension") + ?: throw GradleException("HMCLauncher.$extension not found") + + output.outputStream().use { outputStream -> + zipFile.getInputStream(entry).use { it.copyTo(outputStream) } + outputStream.write(jarContent) + } + + createChecksum(output) + } + } } } @@ -256,8 +277,10 @@ tasks.create("run") { val hmclJavaHome = System.getenv("HMCL_JAVA_HOME") if (hmclJavaHome != null) { - this.executable(file(hmclJavaHome).resolve("bin") - .resolve(if (System.getProperty("os.name").lowercase().startsWith("windows")) "java.exe" else "java")) + this.executable( + file(hmclJavaHome).resolve("bin") + .resolve(if (System.getProperty("os.name").lowercase().startsWith("windows")) "java.exe" else "java") + ) } doFirst { diff --git a/HMCL/src/main/resources/assets/HMCLauncher.exe b/HMCL/src/main/resources/assets/HMCLauncher.exe deleted file mode 100644 index 12ccc5216720e0cac79c99e4e7d0b0b6474a0c64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147968 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
RAj?)&{c9r>|V-R#rkDCskf-JM%?BUEPE|yt=!^ zP0JocA9#lENSNbO6?h;HQBx3@)3b68ewzM;t9O<%&FYJW|O#mPFX}jDR-8JEPyYPrg2#peDyPq_ry>#ykf&#vRI|L_i8*m;D1_`~yk ze&)24TC!kP2O6@1^3k{yRTXgSi#$1h#N;a_}&_g{1h zw(XW7%WhE*2v0vQW7>444Bq%;sw9BOM`3Ap3Z;0 zcNw$BS9F*0D$-~QiGtqs;$8xp8~La7ibe2z93frh`E5;n`FF4I>h5Db)OU*AeemMn zHC0d@)#XPnou7-p&^1wV1g2;7s^ab#R7HY({jTSk_Nm|S+_naE)pf)bD;nZ$@(45* zPpxC?58lsDKXN(ojKSKyO}xIhx!~ubA&sST>WPGO?BN#lFB3-n3;^74;i_nWGv|$C z?T+Sx#<6MfoDWGtJejucmZ z^DZ(r%&L!Z=NGTTwB5|co~f+P*GK9g`j<2O(3;6RJ3c2vADiF?pcih_FW zfqeCy1w?`xQc9t#iZ7wq%ZsB>6^&Wr zV%+tm>o6=k`#c5N+|bHzp4!@{Bl(n>wVXb?j%2!g@^r(ElY#)i9Wkeli*eelS~l!C zcHH}E!(!#825wkB7exp(RiQnR=1Xr~#<$;lF`xVOO74DXKbmU0i8P`}l_DUSl_uNM z)XrJ|{3jMqspO6?zKulMARN$KFMOGZz_J}~zF;=GrtqsLcW|`bEez|I2+Ao6>a{UH z6xdVW5xE&d={fG*hVL-GBFxwCdY+#>zKxogI~!9~x9(oC>O0xICjzR<_{uPMfB8Dd zD)8_w;bT94jK8ftL`}>k4ZpSAy>+B*Yb={v$DjZ1TG|t7 zLV@z7B8zOpP1`{gf?uxOPFuprsmGKObvIPWK!ds7e8aD=4D;Ow*6@SBZ6X}ByOW9h z_#$v?I!Y;shBWT^()C0F8bMv{;lGInHMTUg@!_98$==4!g6BJD;RJ5EVgaV@3~BM2 zu}HuoA#uebr%#A6e`+<`54In7OlQ*IiH!%jcG=9Fw!F+{s_B|SXEMV#Z@!R!zsX@- zRfPBd@85WSdov2%TSx=JJ4OhL^?Q#p>vOkr=_wQV&1bIWSXYWr88ivHM_c#HK77f1 z94Wc&$?e3`mK(xcBoVmTg^)3w?5xLMShAa+VDtWq=N^|1Tn_b}%21G>KE9s+y6-h2 zL3gybe2}td_#s^dA-L;{*D|pxisiWS^3XG6R}q4gW%I($BYhfwRV2Wf^XuLG{_GCX zXvIlG005?KGp;(!vIXPW(a>J-0eos>15a#d;JPzs($dvE8}W!BpeY13l~l&$habFz z%5adIfA9dWA7}?ZM4))3$1I-Tafs=k`VH5dHHDvl{K~Sa6y>kCLGX#o7mzU>ez|f- zt_(PoSG=@mhN8vI7tGFODE4kwDe%;HVu4@}^&L%hu)TOpi{_e?Cqs0`SBhXHBeR)`SZ7G6Vx;w zd97Q0M^hb4t2D#!N(uh(i7Pm5`na4w!|iL?XB*O{#q-+_bFjIvq?%dwf}nz`h|ZU;J9W_NJCLtZWO40z({n0C zcDBgNpbg)V=!(kfE#2xnr5b)vSBR$-e)*wGICuW!+$_kuj{XqPRJI>(`}fAM5x{T-vwCaLxs$7yGA>3#0VZ!~j`P_11FTp)B^w7I2Rx_5B?1B5 z{iU~&v21Sm-u*o?%8HpryAfs*RkgVD#cllVnVo#{ibZ_w#^p43q+BVnG7&-P8vHKu z>l9pn&eWVvp{Kzxm=Vw$jfD`b+tZj+-_cbE!>8dp5<*$S|Ivpo1IWjj5lMJoaxnVj?sgJU3{x}Xb$B#26 z2|T&!ATREi#qzlmX-^hcVzrwHRD!z7BmaB@ZHWvw-uhPz(;;QLqe3xt3sl7oVA3>; z+gEMk{~p`Qm#;mIFI{ss$GTEExw65+3um5E8{zBkJcE5rUEKc6PJ+7Hr?j<%oY>}N zXHDjkQzw&1yHeO*<=y_Ag?$-ZzU-FcIBae>#=Cy-7_pE<*IdK*DLZ0wLZdW zbH))*8fdCgHWA0(aHK?01oNj>GrlIm(YEAq$Lv1R!DFxQ=ez|IeP{T2?60XR<0`{E z{jWE3xGm0&w?2Rnl2oQRMHx?g!Yvza@v|q^^SuW*^3@y8}&4e zo!|c(x|(PBK2@Isnrry~@A|X(z{RJ~o=B6-m?h0jywU&ZEe$kxBnuu>R~h1*g%hxy zp&h*P;cdm6*3d;64qF_+xT+A7>%!QMq%&b~_3~LPo?e?x%qfqIb3PPBps9jKUOvFX zFYhmS%&9Z#_~C~xV#%~RI#Z=5a^z2EcOGfuT|ao3pe{*zL_m?^9e84rZk_s}deB@W zAy>WkxOQY?15`!H&DM&28j=Rw^~I~1GqF0iMW!l(wnUm6Z+*bsdc_U2DM@`tLT5_w zjdw2Nb8k75=FTKqR?o3i1T>XhjqSYSyN}QsKi(%KfOAio$Oo@nNFr?xDFNi`NlFRr z@if1CY%2$vlYM<;bi@I8%xqc?;h@Uu^$k4w@?NezZw_;&RAJlrR!r>=jw8_mDhsDo z^U~I%1p|;aA2`O!4F@=DR{fyz{JqZ!VD7|f)_>=HyuSY^H~-)XYGQ8mo~vrp{{!zC zgk`&1UPBFczyA1Z7JzL@!2if21ib$ze{*L5d8hV_-h*Eu4ll&FJr2{yS2AyM9T~$y zR|Y5D=8pa*Pi#6^(D=a}{m)%Au}2NWa>LWSG_%Ujok@dxR_#Pp1WGBYCB=U4aLoY5 zSBIET6Y4RYky4_n3aPZk^%u=$+PI3G6VH8ra2Mxw-UH9?W#zhtg2$XaZvwa8asdk_ zRTD4M+Rh`BjA>IH4f5os1AOuqtB8f2oZ#fijK1!hU-4Ft5YvV$y_I`ixRHxrxp5gE zym+BYSS3!)byZ={(N5m>KYyb=al9|c8~s0Yj; zxUtyV*ynO^P&0rNnhhv~tG5@>6&_o&kDuJP-d(Rt*O8asL8ZWUBtcze(TrLu3aoVj zUftEiQ=1zI>T1~x)0+{50vZ|9=7I%N*mUcA`0Q0@(ox=J{fLC;|LFZw4BP}AK|oc= z7|_~`3x|j~0&l6Ttjw zHO!k@U6znvAv{r62g7u*ZOJ{WckhUp z^NEJ^+!mCdsh(|1D#ALa%&g_r9nA%0o1WWpnAKYkvEY)$Bn_)<2|KE)kT6Vs{=_DJ z{K&>!P>NweTNea$h=tq|X5NS1XuRNsR!c`^?zBoi^p+*WQwBj@B^p$@d-WdL;^{u` zi6bT354H2&A3n~%z3Uv_y?j2p>P8jzcN<+jMvDht-AiX5NqgH+CkH22V>GGk(lkG*v%iL^;7W1$Lxm6Zk`UmM}R zXZNt}KwH1gKGSme`d`+tabF8xzUB-j)x=!o-#$K~2sql2;ulYB?(>{;CRZ|RautaZ z*8bjeEN~4!6i|5Jg?%(McjX2$%ZI%CP+`~zKvP8bb{WN~%6Ny^QevAne|UT=(U8uK zZ=RpacGEQ#1_&&&Y=??SfKzAIvTjFn!BW{zympXl&N#yRE?7X?C|%lF09tli>0j@9 zndi0~>34TQQ3OlpP2iR*7V+4c-8{195YeEMbpQ>n&xH_F#sWwwv;FQLZm6^COig7h zOmlEf%$(sXDwFFXeEgcFWK5fk=_&!|JEcv_roJ-7hpt-4Q?E7f_^S;)LVJ6|vK{Vv zVK?jd9pk^=b1rAko`B;x$BB@5%Fp+#+1+O@zq@N?qWY~4ME7X#IFeW-z$0t+vind6 zx~AmfBYZhThj80**a+awXG|j&QhDOl{lp>xEZZr*$VB$HBO#tP`Tb*CupLQlWr!Ot znul#WXqwuu*k#(VSUA0gQ)kuk+OC%4-gl(r$;}73c=2TFW1(E77(WmKG(};c2fQ>(*BlmAa}RpSbP}Y+L4P z92VM*lDJDkRS~@9oEc25k8#hlduZ(%Xi3n<%|CdYZ@&9nu3t8bpqfp%@~#cR(T+I3 zerij>?+s`Qk&t`cek@fH?v`&fr1Ipt18m-RjA+QM{^ZSC{TaT?mbx}{uDW5{27KH3 zvv}M2vuJKlQ5g;J@QZuda-cOA`|eBVGW(Ag&@!x-1{1lfGd~fry1RuiYgTmjZa;7CI~mwIGc1?^{_is)}5p2tV+ql(r+8Hok)EFPuX zzI_=Lp+M1FKZ@e+*{D4=Z0v=iC>W+ib#;vYxosuix%~xd zVgkdo-1TY^3d-I+@t|u8!GOvquRD`~rlP6-9l0Jnp%B}VJn?D+E7u+DcS+#&Yg>4HnO=;?sQ)fJfA}EvbwKShc=^m$te^ zUHlGcx&FwKoFiSO>l-efM?h0)Xzt>F?pWW~M@JU{VNq2T=Kucm9AE$0GeiT98?@yolsS7X0ZnnA z9|50w+ZjYd0o3f@>km*B4PrZPf>TL`k2_ll>Iyfmn4cZI+@d5w zO=a)NDhVdDNjrw=aOF8O2?kW|S+$eKwxnA?!g73wU3PcmfyOR=_Se@*q)bkmUC&kL z%p{RE(NuS8d+MxO*6plfM??E@=dm5hGusYv_S^}Cb+uoERun;3%HU^DZsO;UZSHq8 z5(4H-uHxo5&trT|gp6SiIQ{iRIMi%3*i9=IA*Cc7)cNH@uhGz)1d1a9Z%QeFfNJsF zx;>1)=s$Vein-kOvyXH8&!6BQzW)T#kV8OmLy`T;ZUr<2%NBh2>eCrt9l^}5eRJA? zWpZY@1z&7VomI!gnke@^w|l@PK`LYMkH33?C(mf$>5Yd9-YZQN)K;ow%$_qiud=gg zImE&`n|8MF#M=EtLjfW|Etei$tnv4rAt^#|wuy{rlpS=DoQfY(j2ith)#l2KU++~wp@@OyJLNeK9>rEHWcQZ0Qg6`F{ zHhoZRU*3&y2uTiBZ|I{}`|CILh+Hleqk>8Js$+me+S5 zWB1{X<34NJlGWRfuw=%#?5O4(ckUw{3BLTh=Xq&+W53&csvz|0f7gyOaE zrF4~HU*Fxri<^&d?ef{2HGe#Nj&v04_+LM{h09N!$~ki;5ckA2v;XXA?&Nc~t!C?? z)_!kVP*=I+j451s_VnCde7XC{+g|#_b!TANlAk@Wj%3EdvWm~8D0X*2;wmrex6y4Bx|uBY=E({h|tis;j*3ibW*SCU-x* zBj-?Z<+zFrEXq#*LIIVP>kd#;5oAJjgvJ7bAzev>=XM-n(UjU;;Yumt^#d(@_O{g= zIu`HuyJBITx1KwL^G}(C$;3aGC9dgWFwSv-{`Gscn3m^`s*KmYQ_mpInde{qw#$`ChPG>64A zYlhVLd-PHEJ5*H=3kUe}yWT{5Jj2f(cnyKfO+KVI{(2$NzbrdqDO3LVaw?)@nY~kUC#Mz<&~}< zNf;Fb;2~f276G-DAwF^KX*9Maxp&o00=iPP;HAKwHjb|fkxJXS5?lFb>PYh9u14le zsN@gN?cjS4yw>m5pa3S-N4fdUuC{?=4^G^3Fny#5sEGynm-n7aQ(KasKJYq7eIiBkRXMtzH|AqXMAr;Rbbjy$;R&)e%i1(=d_8Of7)a^6NVc_Y1xA=i#A*sl?0Fvuag}q znOq;^^EaKru7(aCd|?-{NB}!q@2;;|ftw;@_h}HvI@25*pq`;31oNg<^1jO!W-H;I z=w3O#f4tz5wz%u?stiLRADN;+%7AoMgu|=yd!h-gBnYr<8$}TWG)cHpL)TT(88at1 z-(!Oq(+njbp`<=_JwysZ9Q8KYIFVL=%ALbuXqry<;rfVfw@hKKZsKM8i58 z_q6cnnti#Xj6%srwj+s!1&OpM=nLq#169G4`Vg6Pnu@SKD1Ex2gv|SG*)9KeIE6f#8)m*9cQ|Hxl`B^hu!#Au^F*E85Bboq=tZu!kiflcBf#E6G z>YB^a^QP2r`px55yW=QNt~)?9sAD<3iNM`c7ozx^D1^H^F}W^Cdpt!|G*I+sM*>FY z<60QKbMFoFc*m<3oTO<@;d>a71fU4Pp_T+M zZa$1-TAVh!p6QdS2n99Y;g&+UYP5@I)Uj;-1YX>7gw-1k5e;fC5oC|E9f*aMta5Sx zH&s;y^%Vgu$0VLiBl8k;M$6joWI$iJ_xp}?(UD9L)O#K;C77m_i|HT8cn#BL`h*Iu zUOt;t#w2Bo&S`#s7;yw30K;~8YV85G?`b#xOYK=iWc{ z+5tB0?U{SuU*Ag!nwH%L=d~9eD(x2--W+9Bhgs6-i8W z*XTQs#@XMLVBYRl-v5?GXeEdwcsTLQx!4 z0bWG7zzuyJR~f*t%zl$iq=eSaG(UfEW1dKfrv}qgn_vvZBbR$`xw-c*y?%t3wz#?X zK~43Y1my=O`~4bm1OSCoM?E6Y9S12LKrPGn^d@)5foRyB1=u!JL^LYGDrqC*hK2TX zKJOtEKvR2?pWL^eY2zz+`-O8!q)Ze=^s87jhMsWKa2*1=%4=Jjd*t4SbkFeLXgbQ} zg$8|g;zhtu0XzFs3~Kv&W7X@2m^MDf>`9gVp1>1A=+UNL&GU?Q&9)|v@+_($sGB zNy4_2jIRn(9UIt3lr|t^^&Jo;C2Ttw=NrFUGhkAYX*pEKf_(g%Q%;D&uV*X$Emg9| zOat11F7NgJW&jI-#pP;bN5bIwO-BYKfF2j*z2HUt_1dCOXRLnp1^gm^S!k3HA!gaf z8<}F*n3jXCD(pMb$@lJD%c-+^ij?>XvgwFtXl_pxeSA65&>W|wqkR26Bq-7XEoWfK z^i;;?U{k!P^R>q_Br_(_kY3dBC!%M7Cc0O*K>wA2CYQSfmMx2_up%YokGb7yu00V7 zsyU7Ivh`A#8C+FF_x2!ee8SE{ZG7i1ukg~ABLuUlriv&oqp_wUG%O=dvK zsxoj@Whu*BF99GN(rAyDzjk055dd_0&F1?ffSPi*VAI}X1CL%3qG7iRkmm}>*+s9` z?mpaE_Q*SRh>N9p+610R$+!Rf3Tw9?B^Xe1+lc*1rB5FpV?s@MXd5|-kv41sy3#M1 zIx?>sQ<=~aH_B2zYzUzO$4%e*qx2p!Ly>TpNF;*e6nBwADA=}5XIEDbp@o5BuqBd! zrz1ztNGRCokYq6A*imZL{XHYw{3(_Fin%ruH2HS$Ab|Hg@{F?MPIXJ+tgH5 zlT0OPZgEwI`xz%K#^H3+@A_6pZ zO{221GJB5Vo*hL|NhXsdQ>ole(qPn{h5-eKw*ClUcK#n9`M~@5e_#AN_8(}V7)+Qj zjwhaahEIL*A9}pLa@|2bKKYb>KkKIL^!EH^Z%tl{lNrlZ)&(kKG4B5TZ>X!SC7CR4 zjXbWtjt3rjj4%Jo*SfzZ@BY8@?bq|)|Nd3>?LS!5`NH848N=XXpZh|N05Ya4%F$PG z2SvD|sOgM_t}CqB*2vSZ9pH+yXR>5YJsH!DL-&Xvovoq+plKSv|HV(4J!=LX9i2tB zv8t+)z55RE_V?a`X_j6N{pu?&IQ~Bs_?`Jt8D#lrS0%6f>{SSQ;fC9|Oe<2tM zFnRJMQt9HHK$9mtHN$dpA*9D$X0`@iDrJz$ zm?YXA93hxk9pc5!hk5*!{k(PgEEdkF#WrP56F(pIb+t^KFrHwrxLkyqs%jF6P%#1jd3kdcr`Spe0WQ;Q~m{BwCz|73b_Ri*nvnRceK!)Q3Y_f)xJ zz+2-6tpjWkW%_x$D{awL#)nH)i{D0kY0FVw+H$nud!bMWdxSZ@Ht%a?^S;*H-^EmV zPp31qw6+om_)qDssR&}(62me`l$ij$Wt!X{|M@8QPcmv5YTns&ybYaq_ONkQ4S|yelnBeNE%xc+`D?$ko8+%Gl1&+KP<~C zs*HE{MF`UAH1|FDw>~d2ZQ2BNw~X>bFIZfEkt?JL?hK%}!S~)2NT#jawo7YQhG0Nq z+jd!E!@YZY%7O(XQzJa`Z47|x0F+Rckmq8cC<+Vpb+Q&k02LK6lw!-qIv&e0va=@}IY}@vI zZ^{MJG<_{6$_-DEr@f=2>=B^@;b?O+*IjiP&pi1s8+N!`q4A_yXsjCG8rgO?2LY_u-|n4bT~n=iVM>Z(dw+uF)Zc=ckiVBTCl^^p%@ z7)HU|hI~w&GMTpQGa;oMw!C>EM0S~(ArJ`g-T(Y|jDB`C6d{O3qx|`v`*{APmkS=F zYyQHVQ>hfQXU)cv-Le14jD_RK0m&%;@$`y?-2Kc>k{Po*LsfKdNe?CZy6PTz0F|*= zHrlLwH@GcsP+J-3v9u5ZEJvc|Uv{srv~l$T(|HozhH2B4$Y7dg(MteL)9CE#qP_F@ zoelRC4w+2G*XWu|CaI~a;u9bGK)=V;PME-p&p+2E0VqQ7{+r*);)M%nJ=WIec_fk} zjYmnR{k5|{%$Pcrzx(9JNhT9yjQ-cOjZIA?l1Wrm&F;ky&nWDXjcHnFs>%o6b92Af zuc``FaP6vuy3?4@UbjUR(Dnp->1ZC5Mh28SpbRq$CpV zJBOmPt84HBTtC%?JnceVQ+ViwJv6na&@_>)hCTd-@1YO@gz2>nsQH{8RYap~*}j9O z=9WH>aipXpVNw(8ha|k-^Ey&MNRb@tO!r%)qZrt>O*kAT7%Ut=5Dtf_t*ODXhHp(j zT2Wh5!%MHcO7mk+V%tO8U#g-Ki-uV^XI4=JA_Y0sUT_IEX*%4qdKZb*;2yL{ILy9%`$%*iBcLnCg>gEzNn3jxm6ZeQ7nB>8 zZDX3Iubme^DEC@@#`NiYl4(qZYOTR5R}p&6v6Bnvv}%}zYX|&^}gob z!XEi+>FS$=y@GCEA7xg$Q5Xe2V=aT(L5som#DZc9?F$2-RS8can+lx;hA(%RZe!J0urAsjj}X}8r?Rm7sv z0iAHAqTB>vnkLniRR{#3pj!Aol!?m}A($~^8sSg~%d&jWP7Ah6!j|njvXbG&i-1Zg zF^rzEF`Y@1psw)bx&v(9*Hft&{2IQyHqc8Dz%3SqdM}p$M{P|F^XAMUo+vK9-h-|W zpE8P~2qKXPwvTC?<4E*Cu%EJDV(<@FiFoJR-^S9@PG!%&{X=s8q1ZN5H4W2tFq1HgrX>}?Y(zY6~WRk zx=Dg0Nh&!@5_IPr$U(_LP(VP~1j!i`lq?`QC|QsoK@rK4B?>56C8-2a5K#~mBz`AbEckWD!0tGcaM};1WBf)^OZQk z+uHJuwf$)&U4DPFw&s@M6OpcMo&X{F#y=K9^&O*EpD>sia27UI zhuwMoT3m01+z|x}$}}i5&N4$@oAq&lR>?a**VHpeyRj*k(*L3A3r(UuuzYQTwUyQy zfp?8#@9Xoe!fbl0iyyCzSoB{v5i31C+j!+hWl}|X^jGaMF=a8@Wif`=Q?DYOewhoP zgh>NEC*?n3CtPkK&z- z9{il5aQ7vCvhJFn{j__&5tp1CAkCGqI5+7xdh}|prR9q}SZk^6?a1u-Y44FIYoV@^ ze>Tl!CmA=(x0OjT7a!#(Ur+0%A7WFS))Dq>uCeXJaX9I`{i;bRKrdBsDKHCJ|+4S^` z0S|-ao3clq51M{G`A8e8IyO3LP%jug8UeES+?yzE^g&*fzhdr7&5-zsc%ChXK!XAm zzL#Kei-M4Jguv(PU22=9ar9ovHzTi_u%2SR=qK|hvG_smX9BaniHYHg&**2RCFLjT zq7fbSuKWUtKLfQzIb`}TN<~K9zg2Z@?N&urRIcXI#BKS(h3BJf?N;Np58ve}UaeHA z>mza8za9fmEA~{EDbm+s7AiaO$;B@sOqiLQHHw)_ktqD2wI)?jQDox#tIu_>WHx_; zkXPegjUQX4;vTcxUgR=4F5SIO+L8+K?3mp@*_phqMQGZ>1lON0m7oMJsFL?Hhd1{J zov*bBPaO9#nO}R;p8IG2Go|L6q9=d&Vqg5?E8o>$&tJXy&?;9Nvr_BF$5i0)$^GWi zd2SEUxI6d&kw0JF7u?(!)RY}HR??AIG@tE0FI1PCcd9cI(&xvlej|*q3jFjd3lSUP z;*hhiJH}H-Oc>NS!N}yBJWO`kqMTQ?Tb7h=1_%+O13`5}?4SJX?5uZ*c6rzdYqO8- zEJ%9%NKI$l(Fv!nakl5}fM$rkT2jTC)(Ah5?-#Smn_O#~91NA2;7+MOf6^zUVH1pA zyS5g@l4LMkfu6Fl;?a%<5o@1mdcpoTS z(tMK4;70D>pz#88mBtVcY69$q_{Mt&K0Md}x;oQH+)kA_N^0V7uHF_nGR{^tv~_NV1cWd8$0 z@G8*HK{TiFM=)&p0Qqy0)&lE(=D|HL=G@$+i&hDeO!Jg}Cst|9KEAnm!Slq~jNzh~ zx3tqGr&hH2F7~}+s@o+3k;%hD($kHNyMv0m6Kv876?N{wc%n+mfzH4K2k~9i8rLH8 z^WKcCe#-=Iw8;fS&f85u#yrmD-6x9!~x@5p({~|}r($#e|^88h4UF(7QUYpgv(TMRA zXYHphI*g5Yl$I{~>ZrUzmS|^9O4F254N?5_r#i1GuKxHVd_F``ahtjiAj0IL7CzOc ztK?;uA7@=1%6Lcfo(WHbjHA^P0P`N77u0-wk3X(^u!`@So?iYUPc-)`Qt2AC2dh8r z%CWS|)u-ZL_I$E#Nv?AJbY{qjIPgT=+n7hKp!$B;ug#BDHx^66`s}o8y@p)G;^j)K$b0MA3( zQyzoQ`a1j04>@I>(;ym+6mEKs*w zByU~XC!H;}Q<95SmJ$5Cd0^Xj3C8;7mpN-Y04-E};_P?w>&ly??cI7hR~LeQ5Z9C_ zCxmRe;PB}a<;m!~Z%1w!yn0~VeV_C5=c~IfzpTbhfm#;V)F; z#Kk+0$lrYD!_M+?NKE+bqF06g@e*;5hmYbb&Rj z_I}d22i^&Und)k}rr?{s^)IR!FQDpb4|`(5&EG0*o_;knFg5K;9e(%`Vf9-&Mu0{> z#Dh$u{qm0@l=nrfArD2+_`-$t=iH}*kGt^3c(~k-OXl0i^aR6hMT0H$BgpvjtV>(g zULAWGx~IH*v5bqUHenn92& zBM60%$a9WGSSxAnRg-q|$!~>A2Vdvu)&&J5g5_qXUw_<-;)_x;qENd}%auo~imS-= z5e+xS2Avy!l?Xg>Y1Wf2-PR8J-qiqgc&%;4nYt9k5w@||x3S)JZ1Wc3oAOVDEn9@d zm-o#NhPO%Y^<+M@t9NMLN(uhT9a98xQM~0wTUuS$yH z$KHzA-t+C{5}#kskJXL4fCNsTkpFw5i6@x0HU2v}*9MNBf`kmjGNaw6UbJpgprxCV zTw2rkX)wxT|AF%Bw{_NuIut6?=!8NQ#%(IA#@BtrOye%xAoWk8xJ-kMOFWp+yw41fc7BN2aFtT6Is0axWb_Lg{V(MNF6-BN%veX=nIrq zR*rof&K|dQ9&8>n@)!)GbGve0hIfk!N!E-$U=)~a3>>VwZ02m<{Mb(}wgakt>C*0H z+8xgzzk8+y_pb!>yR$AuI$iYf>(v{$#4_b#Qdi$p($^D+2oWy4iRCS-Ea^3cYx|lU zf9yK>-1}^6(EZ1C!1kO2D((E{@wd$keVOIKZLx?7k*eUnO77r5TV6@OwJA&eH=ea! zo`T8+9iF<^5+Nl^?T(i&RPyUTsdCNskTKrckY=YHNAA6#r_X@eadlbojb7U+NMqp1)|%_BrymX89K9WtVz?`p9wh$y#k=iYrw1HiilX}K z!D6E6=XS}`jZ;a|`E)@)uH(L?zHbw0IwNBxK${h1d)Ji1uc)JbZE;`VofQc#c?N$I zXY@c@YDJ~zg2^jxF4~7Ov5&tA%dmk_le@blho=*E`-)7V3pMWt1MltsJkT%5apj0z zXx7tUFrIFB{#bW;?C!)`b3VqA7>h}n-0 zB~eI$ezYAtrsRjvCyLFO-PH%frvy(|?$?%=(|6j0b+yo!KdO+xd*U}~dmdlxs$0xx z+E%>Sc60aPMeU55=z*-=XZKtZUwk)Oy_478lW-zd zzk0qfSYZ0~qZ!=vq-M!;eotj4o&xJ1oc6meOwjt3kzUGHa!|3eTrM@M?2%=2!rDyzuW1E-<_MqM*YH>BE{=|K zndzssaw9Hr6j&#z+)CV%0U<{_>}SnF1jFW`z9^KMGi`aSvW~05qcx!e^^wSM{*omQ zmQ}OE(8Out8H$kdlKV`_rdB#!@#=h($~^6oM!zNoB_BNZQFbA+#X2uzX+=ffcle9g zFBWPhlZ{I|S5-ECOXl)0%xK#P$VM#Rd^_d!#Vj%Crz3J;2MpU48LHKBT98!LTy1Zv zcru*ZQ_;~up(|R<^q0BKtCy1Tc%-qgv zeEj2g$Gk*5lSl%`V110bIGq%oi8?Ka2{Ha_YvvBr+31}pgEe=~Ed2Z8?PV{JGn@3A?sXgds7SnVXi>p|D z&vzH@;-e!*oooqQLAH5}^J(YmCs*X6IXG37Ni&PZg}YOAV6TH#ktfIe0~dx1&qm0U zq7lx9r#4G2Y;P(t^l4ua(Bcj8IDG{sKJSqLNkF2<_!94>6;#}?Nw?`{r>B)5|9Zp& zLR%jRN1`wy4pzVPW?Ngy>gNYxR>$rxVpSPsnBjHgEQLEVZ>ucE=VNQ^*Pja9ftOVh zOq(Bv#m*}ZLtko3sd;;|JhR^TOp0Ib}k2iIZkx`#{yp+d5uDm3XKuZQak z^{W)<1~o%`mi0zESIylc;5F&tx@{Wu0h+P~H8aWKJ&m3}=xIY!&#)Mqn2cp=D^1nk zV1itlzO-Q^GgL1GXlSnqIez}Z*3OIsE$G

eTE^fHta>i_?G3r%UFHpu0L0C<9r+ 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 diff --git a/HMCLauncher/.clang-format b/HMCLauncher/.clang-format deleted file mode 100644 index 3d71f04b4..000000000 --- a/HMCLauncher/.clang-format +++ /dev/null @@ -1,4 +0,0 @@ -# Use the Google style in this project. -BasedOnStyle: Google - -SortIncludes: false \ No newline at end of file diff --git a/HMCLauncher/.gitignore b/HMCLauncher/.gitignore deleted file mode 100644 index 3b5cac370..000000000 --- a/HMCLauncher/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -Debug -Release -.vs -*.APS -cmake-build-*/ diff --git a/HMCLauncher/CMakeLists.txt b/HMCLauncher/CMakeLists.txt deleted file mode 100644 index 1edf65cf6..000000000 --- a/HMCLauncher/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -cmake_minimum_required(VERSION 3.25) -project(HMCLauncher) -if(MSVC) - add_definitions(-DUNICODE -D_UNICODE) - add_compile_options(/utf-8 /W4) - add_link_options(/ENTRY:wWinMainCRTStartup) -else() - add_compile_options(-municode -Wall -Wextra -Wpedantic) - add_link_options(-municode) -endif() -OPTION(ENABLE_MINGW_STATIC_LINK_LIBSTDCXX "Link the C++ standard library statically to the executable file(mingw only)." ON) -if(ENABLE_MINGW_STATIC_LINK_LIBSTDCXX AND MINGW) - add_link_options(-static) -endif() -set(CMAKE_WIN32_EXECUTABLE ON) -add_executable(HMCLauncher WIN32 HMCL/HMCL.rc HMCL/java.cpp HMCL/main.cpp HMCL/os.cpp HMCL/stdafx.cpp HMCL/Version.cpp) -target_link_libraries(HMCLauncher Version) -install(TARGETS HMCLauncher) \ No newline at end of file diff --git a/HMCLauncher/HMCL/HMCL.ico b/HMCLauncher/HMCL/HMCL.ico deleted file mode 100644 index d2730371487c1fca9f88112ac996b04416ed32e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50645 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 L^i>;`?PLEBMy0b7 diff --git a/HMCLauncher/HMCL/HMCL.rc b/HMCLauncher/HMCL/HMCL.rc deleted file mode 100644 index ecc8c147c..000000000 --- a/HMCLauncher/HMCL/HMCL.rc +++ /dev/null @@ -1,143 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#ifndef APSTUDIO_INVOKED -#include "targetver.h" -#endif -#define APSTUDIO_HIDDEN_SYMBOLS -#include "windows.h" -#undef APSTUDIO_HIDDEN_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// 中文(简体,中国) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) -LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_HMCL ICON "HMCL.ico" - - -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -IDC_HMCL ACCELERATORS -BEGIN - "?", IDM_ABOUT, ASCII, ALT - "/", IDM_ABOUT, ASCII, ALT -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#ifndef APSTUDIO_INVOKED\r\n" - "#include ""targetver.h""\r\n" - "#endif\r\n" - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,5,0,0 - PRODUCTVERSION 3,5,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "080404b0" - BEGIN - VALUE "CompanyName", "huanghongxun" - VALUE "FileDescription", "Hello Minecraft! Launcher For Windows" - VALUE "FileVersion", "3.5.0.0" - VALUE "InternalName", "HMCL.exe" - VALUE "LegalCopyright", "Copyright (C) 2021 huangyuhui" - VALUE "OriginalFilename", "HMCL.exe" - VALUE "ProductName", "Hello Minecraft! Launcher" - VALUE "ProductVersion", "3.5.0.0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x804, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDS_APP_TITLE "HMCL" - IDC_HMCL "HMCL" -END - -#endif // 中文(简体,中国) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/HMCLauncher/HMCL/HMCL.vcxproj b/HMCLauncher/HMCL/HMCL.vcxproj deleted file mode 100644 index fe4858207..000000000 --- a/HMCLauncher/HMCL/HMCL.vcxproj +++ /dev/null @@ -1,192 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 15.0 - {672B1019-E741-4C0D-A986-627E2ACE157B} - Win32Proj - HMCL - 10.0 - HMCLauncher - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - - - true - - - false - - - false - - - - Use - Level3 - Disabled - true - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - false - /utf-8 %(AdditionalOptions) - - - Windows - true - version.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Use - Level3 - Disabled - true - _DEBUG;_WINDOWS;%(PreprocessorDefinitions) - false - /utf-8 %(AdditionalOptions) - - - Windows - true - - - - - Use - Level3 - MinSpace - true - false - true - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS - false - MultiThreaded - Disabled - Size - /utf-8 %(AdditionalOptions) - - - Windows - true - true - true - version.lib;%(AdditionalDependencies) - - - - - Use - Level3 - MinSpace - true - false - true - NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - false - Disabled - Size - /utf-8 %(AdditionalOptions) - - - Windows - true - true - true - - - - - - - - - - - - - - - - - - Create - Create - Create - Create - - - - - - - - - - - - - \ No newline at end of file diff --git a/HMCLauncher/HMCL/HMCL.vcxproj.filters b/HMCLauncher/HMCL/HMCL.vcxproj.filters deleted file mode 100644 index fea247b7a..000000000 --- a/HMCLauncher/HMCL/HMCL.vcxproj.filters +++ /dev/null @@ -1,70 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - 头文件 - - - 头文件 - - - 头文件 - - - 头文件 - - - 头文件 - - - 头文件 - - - 头文件 - - - 头文件 - - - - - 源文件 - - - 源文件 - - - 源文件 - - - 源文件 - - - 源文件 - - - - - 资源文件 - - - - - 资源文件 - - - \ No newline at end of file diff --git a/HMCLauncher/HMCL/HMCL.vcxproj.user b/HMCLauncher/HMCL/HMCL.vcxproj.user deleted file mode 100644 index be2507870..000000000 --- a/HMCLauncher/HMCL/HMCL.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/HMCLauncher/HMCL/Version.cpp b/HMCLauncher/HMCL/Version.cpp deleted file mode 100644 index ed91397dd..000000000 --- a/HMCLauncher/HMCL/Version.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "stdafx.h" -#include "version.h" - -Version::Version(const std::wstring &rawString) { - int idx = 0; - ver[0] = ver[1] = ver[2] = ver[3] = 0; - for (auto &i : rawString) { - if (idx >= 4) break; - if (i == '.') - ++idx; - else if (i == '_') - ++idx; - else if (isdigit(i)) - ver[idx] = ver[idx] * 10 + (i - L'0'); - } -} diff --git a/HMCLauncher/HMCL/Version.h b/HMCLauncher/HMCL/Version.h deleted file mode 100644 index 523690402..000000000 --- a/HMCLauncher/HMCL/Version.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include - -class Version { - public: - int ver[4]; - - Version(const std::wstring &rawString); - - template - Version(std::initializer_list ver_list) { - int i = 0; - for (const auto &data : ver_list) { - if (i >= 4) break; - ver[i++] = data; - } - } - - bool operator<(const Version &other) const { - for (int i = 0; i < 4; ++i) - if (ver[i] != other.ver[i]) return ver[i] < other.ver[i]; - return false; - } - - bool operator<=(const Version &other) const { - for (int i = 0; i < 4; ++i) - if (ver[i] != other.ver[i]) return ver[i] < other.ver[i]; - return true; - } -}; diff --git a/HMCLauncher/HMCL/java.cpp b/HMCLauncher/HMCL/java.cpp deleted file mode 100644 index 067c12fb2..000000000 --- a/HMCLauncher/HMCL/java.cpp +++ /dev/null @@ -1,84 +0,0 @@ -#include "stdafx.h" -#include "java.h" -#include "os.h" -#include "version.h" - -const Version JAVA_8(L"1.8"), JAVA_11(L"11"); - -const LPCWSTR JDK_NEW = L"SOFTWARE\\JavaSoft\\JDK"; -const LPCWSTR JRE_NEW = L"SOFTWARE\\JavaSoft\\JRE"; -const LPCWSTR JDK_OLD = L"SOFTWARE\\JavaSoft\\Java Development Kit"; -const LPCWSTR JRE_OLD = L"SOFTWARE\\JavaSoft\\Java Runtime Environment"; - -bool oldJavaFound = false; - -bool FindJavaByRegistryKey(HKEY rootKey, LPCWSTR subKey, std::wstring& path) { - WCHAR javaVer[MAX_KEY_LENGTH]; // buffer for subkey name, special for - // JavaVersion - DWORD cbName; // size of name string - DWORD cSubKeys = 0; // number of subkeys - DWORD cbMaxSubKey; // longest subkey size - DWORD cValues; // number of values for key - DWORD cchMaxValue; // longest value name - DWORD cbMaxValueData; // longest value data - LSTATUS result; - - HKEY hKey; - if (ERROR_SUCCESS != - (result = - RegOpenKeyEx(rootKey, subKey, 0, KEY_WOW64_64KEY | KEY_READ, &hKey))) - return false; - - RegQueryInfoKey(hKey, // key handle - NULL, // buffer for class name - NULL, // size of class string - NULL, // reserved - &cSubKeys, // number of subkeys - &cbMaxSubKey, // longest subkey size - NULL, // longest class string - &cValues, // number of values for this key - &cchMaxValue, // longest value name - &cbMaxValueData, // longest value data - NULL, // security descriptor - NULL); // last write time - - if (!cSubKeys) return false; - - bool flag = false; - for (DWORD i = 0; i < cSubKeys; ++i) { - cbName = MAX_KEY_LENGTH; - if (ERROR_SUCCESS != (result = RegEnumKeyEx(hKey, i, javaVer, &cbName, NULL, - NULL, NULL, NULL))) - continue; - - HKEY javaKey; - if (ERROR_SUCCESS != RegOpenKeyEx(hKey, javaVer, 0, KEY_READ, &javaKey)) - continue; - - if (ERROR_SUCCESS == MyRegQueryValue(javaKey, L"JavaHome", REG_SZ, path)) { - if (Version(javaVer) < JAVA_8) - oldJavaFound = true; - else - flag = true; - } - - if (flag) break; - } - - RegCloseKey(hKey); - - return flag; -} - -bool FindJavaInRegistry(std::wstring& path) { - return FindJavaByRegistryKey(HKEY_LOCAL_MACHINE, JDK_NEW, path) || - FindJavaByRegistryKey(HKEY_LOCAL_MACHINE, JRE_NEW, path) || - FindJavaByRegistryKey(HKEY_LOCAL_MACHINE, JDK_OLD, path) || - FindJavaByRegistryKey(HKEY_LOCAL_MACHINE, JRE_OLD, path); -} - -bool FindJava(std::wstring& path) { - return ERROR_SUCCESS == MyGetEnvironmentVariable(L"HMCL_JAVA_HOME", path) || - ERROR_SUCCESS == MyGetEnvironmentVariable(L"JAVA_HOME", path) || - FindJavaInRegistry(path); -} diff --git a/HMCLauncher/HMCL/java.h b/HMCLauncher/HMCL/java.h deleted file mode 100644 index eb0a289f9..000000000 --- a/HMCLauncher/HMCL/java.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once -#include -#include - -// Find Java installation in system registry -bool FindJavaInRegistry(std::wstring &path); - -// Find Java Installation in registry and environment variable -bool FindJava(std::wstring &path); diff --git a/HMCLauncher/HMCL/lang.h b/HMCLauncher/HMCL/lang.h deleted file mode 100644 index b6207594e..000000000 --- a/HMCLauncher/HMCL/lang.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#define ERROR_TITLE L"Java not found" - -#define ERROR_TITLE_ZH L"未找到 Java" - -#define ERROR_PROMPT L"The Java runtime environment is required to run HMCL and Minecraft,\n"\ - L"Click 'OK' to start downloading java.\n"\ - L"Please restart HMCL after installing Java." - -#define ERROR_PROMPT_ZH L"运行 HMCL 以及 Minecraft 需要 Java 运行时环境,点击“确定”开始下载。\n"\ - L"请在安装 Java 完成后重新启动 HMCL。" diff --git a/HMCLauncher/HMCL/main.cpp b/HMCLauncher/HMCL/main.cpp deleted file mode 100644 index ba2055891..000000000 --- a/HMCLauncher/HMCL/main.cpp +++ /dev/null @@ -1,155 +0,0 @@ -#include "stdafx.h" -#include "main.h" -#include "os.h" -#include "java.h" -#include "lang.h" -#include - -Version J8(TEXT("8")); - -extern "C" { -__declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; -__declspec(dllexport) DWORD AmdPowerXpressRequestHighPerformance = 0x00000001; -} - -LPCWSTR VENDOR_DIRS[] = { - L"Java", L"Microsoft", L"BellSoft", L"Zulu", L"Eclipse Foundation", L"AdoptOpenJDK", L"Semeru" -}; - -void RawLaunchJVM(const std::wstring &javaPath, const std::wstring &workdir, - const std::wstring &jarPath, const std::wstring &jvmOptions) { - if (MyCreateProcess(L"\"" + javaPath + L"\" " + jvmOptions + L" -jar \"" + jarPath + L"\"", workdir)) - exit(EXIT_SUCCESS); -} - -void LaunchJVM(const std::wstring &javaPath, const std::wstring &workdir, - const std::wstring &jarPath, const std::wstring &jvmOptions) { - Version javaVersion(L""); - if (!MyGetFileVersionInfo(javaPath, javaVersion)) return; - - if (J8 <= javaVersion) { - RawLaunchJVM(javaPath, workdir, jarPath, jvmOptions); - } -} - -void FindJavaInDirAndLaunchJVM(const std::wstring &baseDir, const std::wstring &workdir, - const std::wstring &jarPath, const std::wstring &jvmOptions) { - std::wstring pattern = baseDir + L"*"; - - WIN32_FIND_DATA data; - HANDLE hFind = FindFirstFile(pattern.c_str(), &data); // Search all subdirectory - - if (hFind != INVALID_HANDLE_VALUE) { - do { - std::wstring javaw = baseDir + data.cFileName + std::wstring(L"\\bin\\javaw.exe"); - if (FindFirstFileExists(javaw.c_str(), 0)) { - LaunchJVM(javaw, workdir, jarPath, jvmOptions); - } - } while (FindNextFile(hFind, &data)); - FindClose(hFind); - } -} - -void OpenHelpPage() { - ShellExecute(0, 0, L"https://docs.hmcl.net/help.html", 0, 0, SW_SHOW); -} - -int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, - LPWSTR lpCmdLine, int nCmdShow) { - std::wstring path, exeName, jvmOptions; - - // Since Jar file is appended to this executable, we should first get the - // location of JAR file. - if (ERROR_SUCCESS != MyGetModuleFileName(NULL, exeName)) return 1; - - std::wstring workdir; - size_t last_slash = exeName.find_last_of(L"/\\"); - if (last_slash != std::wstring::npos && last_slash + 1 < exeName.size()) { - workdir = exeName.substr(0, last_slash); - exeName = exeName.substr(last_slash + 1); - } - - if (ERROR_SUCCESS != MyGetEnvironmentVariable(L"HMCL_JAVA_OPTS", jvmOptions)) { - jvmOptions = L"-XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=15"; // Default Options - } - - bool useChinese = GetUserDefaultUILanguage() == 2052; // zh-CN - - MyArchitecture architecture = MyGetArchitecture(); - - // First try the Java packaged together. - bool isX64 = architecture == MyArchitecture::X86_64; - bool isARM64 = architecture == MyArchitecture::ARM64; - - if (isARM64) { - RawLaunchJVM(L"jre-arm64\\bin\\javaw.exe", workdir, exeName, jvmOptions); - } - if (isX64) { - RawLaunchJVM(L"jre-x64\\bin\\javaw.exe", workdir, exeName, jvmOptions); - } - RawLaunchJVM(L"jre-x86\\bin\\javaw.exe", workdir, exeName, jvmOptions); - - if (FindJava(path)) LaunchJVM(path + L"\\bin\\javaw.exe", workdir, exeName, jvmOptions); - - std::wstring programFiles; - - // Or we try to search Java in C:\Program Files - if (!SUCCEEDED(MySHGetFolderPath(CSIDL_PROGRAM_FILES, programFiles))) programFiles = L"C:\\Program Files\\"; - for (LPCWSTR vendorDir : VENDOR_DIRS) { - std::wstring dir = programFiles; - MyPathAppend(dir, vendorDir); - MyPathAddBackslash(dir); - - FindJavaInDirAndLaunchJVM(dir, workdir, exeName, jvmOptions); - } - - // Consider C:\Program Files (x86) - if (!SUCCEEDED(MySHGetFolderPath(CSIDL_PROGRAM_FILESX86, programFiles))) programFiles = L"C:\\Program Files (x86)\\"; - for (LPCWSTR vendorDir : VENDOR_DIRS) { - std::wstring dir = programFiles; - MyPathAppend(dir, vendorDir); - MyPathAddBackslash(dir); - - FindJavaInDirAndLaunchJVM(dir, workdir, exeName, jvmOptions); - } - - // Try java in PATH - RawLaunchJVM(L"javaw", workdir, exeName, jvmOptions); - - std::wstring hmclJavaDir; - { - std::wstring buffer; - if (SUCCEEDED(MySHGetFolderPath(CSIDL_APPDATA, buffer)) || SUCCEEDED(MySHGetFolderPath(CSIDL_PROFILE, buffer))) { - MyPathAppend(buffer, L".hmcl"); - MyPathAppend(buffer, L"java"); - if (isARM64) { - MyPathAppend(buffer, L"windows-arm64"); - } else if (isX64) { - MyPathAppend(buffer, L"windows-x86_64"); - } else { - MyPathAppend(buffer, L"windows-x86"); - } - MyPathAddBackslash(buffer); - hmclJavaDir = buffer; - } - } - - if (!hmclJavaDir.empty()) { - FindJavaInDirAndLaunchJVM(hmclJavaDir, workdir, exeName, jvmOptions); - } - - LPCWSTR downloadLink; - - if (isARM64) { - downloadLink = L"https://docs.hmcl.net/downloads/windows/arm64.html"; - } else if (isX64) { - downloadLink = L"https://docs.hmcl.net/downloads/windows/x86_64.html"; - } else { - downloadLink = L"https://docs.hmcl.net/downloads/windows/x86.html"; - } - - if (IDOK == MessageBox(NULL, useChinese ? ERROR_PROMPT_ZH : ERROR_PROMPT, useChinese ? ERROR_TITLE_ZH : ERROR_TITLE, MB_ICONWARNING | MB_OKCANCEL)) { - ShellExecute(0, 0, downloadLink, 0, 0, SW_SHOW); - } - return 1; -} diff --git a/HMCLauncher/HMCL/main.h b/HMCLauncher/HMCL/main.h deleted file mode 100644 index d00d47e78..000000000 --- a/HMCLauncher/HMCL/main.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#include "resource.h" diff --git a/HMCLauncher/HMCL/os.cpp b/HMCLauncher/HMCL/os.cpp deleted file mode 100644 index b10718586..000000000 --- a/HMCLauncher/HMCL/os.cpp +++ /dev/null @@ -1,203 +0,0 @@ -#include "stdafx.h" -#include "os.h" - -typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS2) (HANDLE, PUSHORT, PUSHORT); - -MyArchitecture MyGetArchitecture() { - LPFN_ISWOW64PROCESS2 fnIsWow64Process2 = (LPFN_ISWOW64PROCESS2)GetProcAddress( - GetModuleHandle(L"Kernel32.dll"), "IsWow64Process2"); - if (NULL != fnIsWow64Process2) { - USHORT uProcessMachine = 0; - USHORT uNativeMachine = 0; - if (fnIsWow64Process2(GetCurrentProcess(), &uProcessMachine, &uNativeMachine)) { - if (uNativeMachine == 0xAA64) { - return MyArchitecture::ARM64; - } - - if (uNativeMachine == 0x8664) { - return MyArchitecture::X86_64; - } - - return MyArchitecture::X86; - } - } - - SYSTEM_INFO systemInfo; - GetNativeSystemInfo(&systemInfo); - - if (systemInfo.wProcessorArchitecture == 12) { // PROCESSOR_ARCHITECTURE_ARM64 - return MyArchitecture::ARM64; - } - - if (systemInfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) { - return MyArchitecture::X86_64; - } - - return MyArchitecture::X86; -} - -LSTATUS MyRegQueryValue(HKEY hKey, LPCWSTR subKey, DWORD dwType, - std::wstring &out) { - DWORD dwSize = 0; - LSTATUS ret = RegQueryValueEx(hKey, subKey, 0, &dwType, NULL, &dwSize); - if (ret != ERROR_SUCCESS) return ret; - WCHAR *buffer = new WCHAR[dwSize]; - ret = RegQueryValueEx(hKey, subKey, 0, &dwType, (LPBYTE)buffer, &dwSize); - if (ret != ERROR_SUCCESS) return ret; - out = buffer; - delete[] buffer; - return ERROR_SUCCESS; -} - -LSTATUS MyGetModuleFileName(HMODULE hModule, std::wstring &out) { - DWORD res, size = MAX_PATH; - out = std::wstring(); - out.resize(size); - while ((res = GetModuleFileName(hModule, &out[0], size)) == size) { - out.resize(size += MAX_PATH); - } - if (res == 0) - return GetLastError(); - else { - out.resize(size - MAX_PATH + res); - return ERROR_SUCCESS; - } -} - -LSTATUS MyGetEnvironmentVariable(LPCWSTR name, std::wstring &out) { - DWORD res, size = MAX_PATH; - out = std::wstring(); - out.resize(size); - while ((res = GetEnvironmentVariable(name, &out[0], size)) == size) { - out.resize(size += MAX_PATH); - } - if (res == 0) - return GetLastError(); - else { - out.resize(size - MAX_PATH + res); - return ERROR_SUCCESS; - } -} - -bool MyCreateProcess(const std::wstring &command, const std::wstring &workdir) { - std::wstring writable_command = command; - STARTUPINFO si; - PROCESS_INFORMATION pi; - si.cb = sizeof(si); - ZeroMemory(&si, sizeof(si)); - ZeroMemory(&pi, sizeof(pi)); - - if (workdir.empty()) { - return CreateProcess(NULL, &writable_command[0], NULL, NULL, false, - NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi); - } else { - return CreateProcess(NULL, &writable_command[0], NULL, NULL, false, - NORMAL_PRIORITY_CLASS, NULL, workdir.c_str(), &si, - &pi); - } -} - -bool FindFirstFileExists(LPCWSTR lpPath, DWORD dwFilter) { - WIN32_FIND_DATA fd; - HANDLE hFind = FindFirstFile(lpPath, &fd); - bool bFilter = (false == dwFilter) ? true : fd.dwFileAttributes & dwFilter; - bool ret = ((hFind != INVALID_HANDLE_VALUE) && bFilter) ? true : false; - FindClose(hFind); - return ret; -} - -bool MyGetFileVersionInfo(const std::wstring &filePath, Version &version) { - DWORD verHandle = 0; - UINT size = 0; - LPBYTE lpBuffer = NULL; - VS_FIXEDFILEINFO *pFileInfo; - DWORD dwSize = GetFileVersionInfoSize(filePath.c_str(), NULL); - - if (!dwSize) return false; - - LPBYTE data = new BYTE[dwSize]; - if (!GetFileVersionInfo(filePath.c_str(), 0, dwSize, data)) { - delete[] data; - return false; - } - - if (!VerQueryValue(data, TEXT("\\"), (LPVOID *)&pFileInfo, &size)) { - delete[] data; - return false; - } - - version = Version{(pFileInfo->dwFileVersionMS >> 16) & 0xFFFF, - (pFileInfo->dwFileVersionMS >> 0) & 0xFFFF, - (pFileInfo->dwFileVersionLS >> 16) & 0xFFFF, - (pFileInfo->dwFileVersionLS >> 0) & 0xFFFF}; - return true; -} - -HRESULT MySHGetFolderPath(int csidl, std::wstring &out) { - out = std::wstring(); - out.resize(MAX_PATH); - - HRESULT res = SHGetFolderPath(NULL, csidl, NULL, 0, &out[0]); - if (SUCCEEDED(res)) { - out.resize(wcslen(&out[0])); - } else { - out.resize(0); - } - return res; -} - -void MyPathAppend(std::wstring &filePath, const std::wstring &more) { - if (filePath.back() != L'\\') { - filePath += L'\\'; - } - - filePath += more; -} - -void MyPathAddBackslash(std::wstring &filePath) { - if (filePath.back() != L'\\') { - filePath += L'\\'; - } -} - -LSTATUS MyGetTempFile(const std::wstring &prefixString, const std::wstring &ext, std::wstring &out) { - out.resize(MAX_PATH); - DWORD res = GetTempPath(MAX_PATH, &out[0]); - if (res == 0) { - return GetLastError(); - } - - out.resize(res); - - GUID guid; - CoCreateGuid(&guid); - - WCHAR buffer[MAX_PATH]; - int n = StringFromGUID2(guid, buffer, MAX_PATH); - if (n == 0) { - return CO_E_PATHTOOLONG; - } - - MyPathAddBackslash(out); - out += prefixString; - out += buffer; - out += L'.'; - out += ext; - - return ERROR_SUCCESS; -} - -void MyAppendPathToCommandLine(std::wstring &commandLine, const std::wstring &path) { - commandLine += L'"'; - for (size_t i = 0; i < path.size(); i++) { - WCHAR ch = path[i]; - if (ch == L'\\' && (i + 1 == path.size() || path[i + 1] == L'"')) { - commandLine += L"\\\\"; - } else if (ch == L'"') { - commandLine += L"\\\""; - } else { - commandLine += ch; - } - } - commandLine += L'"'; -} \ No newline at end of file diff --git a/HMCLauncher/HMCL/os.h b/HMCLauncher/HMCL/os.h deleted file mode 100644 index e44743a9f..000000000 --- a/HMCLauncher/HMCL/os.h +++ /dev/null @@ -1,47 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include "Version.h" - -const int MAX_KEY_LENGTH = 255; -const int MAX_VALUE_NAME = 16383; - -enum MyArchitecture { - X86, - X86_64, - ARM64 -}; - -MyArchitecture MyGetArchitecture(); - -// Query registry value of class root hKey, key path subKey, stores result in -// parameter out. -LSTATUS MyRegQueryValue(HKEY hKey, LPCWSTR subKey, DWORD dwType, - std::wstring &out); - -// Get module file name, stores result in parameter out. -LSTATUS MyGetModuleFileName(HMODULE hModule, std::wstring &out); - -// Get environment variable by name, C++ style, stores the value in parameter -// out. -LSTATUS MyGetEnvironmentVariable(LPCWSTR name, std::wstring &out); - -// Create process by invoking CreateProcess, only pass command. -bool MyCreateProcess(const std::wstring &command, const std::wstring &workdir); - -// Check if file lpPath exists. -bool FindFirstFileExists(LPCWSTR lpPath, DWORD dwFilter); - -bool MyGetFileVersionInfo(const std::wstring &filePath, Version &version); - -HRESULT MySHGetFolderPath(int csidl, std::wstring &out); - -void MyPathAppend(std::wstring &filePath, const std::wstring &more); - -void MyPathAddBackslash(std::wstring &filePath); - -LSTATUS MyGetTempFile(const std::wstring &prefixString, const std::wstring &ext, std::wstring &out); - -void MyAppendPathToCommandLine(std::wstring &commandLine, const std::wstring &path); \ No newline at end of file diff --git a/HMCLauncher/HMCL/resource.h b/HMCLauncher/HMCL/resource.h deleted file mode 100644 index 37674e53f..000000000 --- a/HMCLauncher/HMCL/resource.h +++ /dev/null @@ -1,25 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ 生成的包含文件。 -// 供 HMCL.rc 使用 -// -#define IDC_MYICON 2 -#define IDD_HMCL_DIALOG 102 -#define IDS_APP_TITLE 103 -#define IDM_ABOUT 104 -#define IDI_HMCL 107 -#define IDC_HMCL 109 -#define IDR_MAINFRAME 128 -#define ID_SCRIPT_DOWNLOAD_JAVA 160 -#define IDC_STATIC -1 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NO_MFC 1 -#define _APS_NEXT_RESOURCE_VALUE 129 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 110 -#endif -#endif diff --git a/HMCLauncher/HMCL/stdafx.cpp b/HMCLauncher/HMCL/stdafx.cpp deleted file mode 100644 index 88cf932c2..000000000 --- a/HMCLauncher/HMCL/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : 只包括标准包含文件的源文件 -// HMCL.pch 将作为预编译标头 -// stdafx.obj 将包含预编译类型信息 - -#include "stdafx.h" - -// TODO: 在 STDAFX.H 中引用任何所需的附加头文件, -//而不是在此文件中引用 diff --git a/HMCLauncher/HMCL/stdafx.h b/HMCLauncher/HMCL/stdafx.h deleted file mode 100644 index b7aace52a..000000000 --- a/HMCLauncher/HMCL/stdafx.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -#include "targetver.h" - -#include -#include -#include diff --git a/HMCLauncher/HMCL/targetver.h b/HMCLauncher/HMCL/targetver.h deleted file mode 100644 index e1306e323..000000000 --- a/HMCLauncher/HMCL/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Windows 7 - -#define WINVER 0x0601 -#define _WIN32_WINNT 0x0601 - -#include diff --git a/HMCLauncher/HMCLauncher.sln b/HMCLauncher/HMCLauncher.sln deleted file mode 100644 index 792b39bb9..000000000 --- a/HMCLauncher/HMCLauncher.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27428.2005 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HMCL", "HMCL\HMCL.vcxproj", "{672B1019-E741-4C0D-A986-627E2ACE157B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {672B1019-E741-4C0D-A986-627E2ACE157B}.Debug|x86.ActiveCfg = Debug|Win32 - {672B1019-E741-4C0D-A986-627E2ACE157B}.Debug|x86.Build.0 = Debug|Win32 - {672B1019-E741-4C0D-A986-627E2ACE157B}.Release|x86.ActiveCfg = Release|Win32 - {672B1019-E741-4C0D-A986-627E2ACE157B}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {FE40055B-673D-42F5-8AE4-6DF2C87EB659} - EndGlobalSection -EndGlobal