diff --git a/Dalamud.Injector.Boot/Dalamud.Injector.Boot.vcxproj b/Dalamud.Injector.Boot/Dalamud.Injector.Boot.vcxproj
deleted file mode 100644
index 7f8de3843..000000000
--- a/Dalamud.Injector.Boot/Dalamud.Injector.Boot.vcxproj
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
- {8874326B-E755-4D13-90B4-59AB263A3E6B}
- Dalamud_Injector_Boot
- Debug
- x64
-
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- 16.0
- Win32Proj
- 10.0
- Dalamud.Injector
-
-
-
- Application
- true
- v143
- false
- Unicode
- ..\bin\$(Configuration)\
- obj\$(Configuration)\
-
-
-
-
- Level3
- true
- true
- stdcpp23
- pch.h
- ProgramDatabase
- CPPDLLTEMPLATE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
-
-
- Console
- true
- false
- ..\lib\CoreCLR;%(AdditionalLibraryDirectories)
- $(OutDir)$(TargetName).Boot.pdb
-
-
-
-
- true
- false
- MultiThreadedDebugDLL
- _DEBUG;%(PreprocessorDefinitions)
-
-
- false
- false
-
-
-
-
- true
- true
- MultiThreadedDLL
- NDEBUG;%(PreprocessorDefinitions)
-
-
- true
- true
-
-
-
-
-
- nethost.dll
- PreserveNewest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Dalamud.Injector.Boot/Dalamud.Injector.Boot.vcxproj.filters b/Dalamud.Injector.Boot/Dalamud.Injector.Boot.vcxproj.filters
deleted file mode 100644
index 8f4372d89..000000000
--- a/Dalamud.Injector.Boot/Dalamud.Injector.Boot.vcxproj.filters
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
- {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
- cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
-
-
- {93995380-89BD-4b04-88EB-625FBE52EBFB}
- h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
-
-
- {4faac519-3a73-4b2b-96e7-fb597f02c0be}
- ico;rc
-
-
-
-
- Resource Files
-
-
-
-
- Resource Files
-
-
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
-
\ No newline at end of file
diff --git a/Dalamud.Injector.Boot/main.cpp b/Dalamud.Injector.Boot/main.cpp
deleted file mode 100644
index df4120009..000000000
--- a/Dalamud.Injector.Boot/main.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#define WIN32_LEAN_AND_MEAN
-
-#include
-#include
-#include
-#include "..\Dalamud.Boot\logging.h"
-#include "..\lib\CoreCLR\CoreCLR.h"
-#include "..\lib\CoreCLR\boot.h"
-
-int wmain(int argc, wchar_t** argv)
-{
- // Take care: don't redirect stderr/out here, we need to write our pid to stdout for XL to read
- //logging::start_file_logging("dalamud.injector.boot.log", false);
- logging::I("Dalamud Injector, (c) 2021 XIVLauncher Contributors");
- logging::I("Built at : " __DATE__ "@" __TIME__);
-
- wchar_t _module_path[MAX_PATH];
- GetModuleFileNameW(NULL, _module_path, sizeof _module_path / 2);
- std::filesystem::path fs_module_path(_module_path);
-
- std::wstring runtimeconfig_path = _wcsdup(fs_module_path.replace_filename(L"Dalamud.Injector.runtimeconfig.json").c_str());
- std::wstring module_path = _wcsdup(fs_module_path.replace_filename(L"Dalamud.Injector.dll").c_str());
-
- // =========================================================================== //
-
- void* entrypoint_vfn;
- const auto result = InitializeClrAndGetEntryPoint(
- GetModuleHandleW(nullptr),
- false,
- runtimeconfig_path,
- module_path,
- L"Dalamud.Injector.EntryPoint, Dalamud.Injector",
- L"Main",
- L"Dalamud.Injector.EntryPoint+MainDelegate, Dalamud.Injector",
- &entrypoint_vfn);
-
- if (FAILED(result))
- return result;
-
- typedef int (CORECLR_DELEGATE_CALLTYPE* custom_component_entry_point_fn)(int, wchar_t**);
- custom_component_entry_point_fn entrypoint_fn = reinterpret_cast(entrypoint_vfn);
-
- logging::I("Running Dalamud Injector...");
- const auto ret = entrypoint_fn(argc, argv);
- logging::I("Done!");
-
- return ret;
-}
diff --git a/Dalamud.Injector.Boot/pch.h b/Dalamud.Injector.Boot/pch.h
deleted file mode 100644
index 6f70f09be..000000000
--- a/Dalamud.Injector.Boot/pch.h
+++ /dev/null
@@ -1 +0,0 @@
-#pragma once
diff --git a/Dalamud.Injector.Boot/resources.rc b/Dalamud.Injector.Boot/resources.rc
deleted file mode 100644
index 8369e82a1..000000000
--- a/Dalamud.Injector.Boot/resources.rc
+++ /dev/null
@@ -1 +0,0 @@
-MAINICON ICON "dalamud.ico"
diff --git a/Dalamud.Injector/Dalamud.Injector.csproj b/Dalamud.Injector/Dalamud.Injector.csproj
index 4a55174a1..a0b4f6451 100644
--- a/Dalamud.Injector/Dalamud.Injector.csproj
+++ b/Dalamud.Injector/Dalamud.Injector.csproj
@@ -13,12 +13,13 @@
- Library
+ Exe
..\bin\$(Configuration)\
false
false
true
false
+ dalamud.ico
diff --git a/Dalamud.Injector/EntryPoint.cs b/Dalamud.Injector/Program.cs
similarity index 98%
rename from Dalamud.Injector/EntryPoint.cs
rename to Dalamud.Injector/Program.cs
index b876aa6ed..e224791e6 100644
--- a/Dalamud.Injector/EntryPoint.cs
+++ b/Dalamud.Injector/Program.cs
@@ -25,34 +25,20 @@ namespace Dalamud.Injector
///
/// Entrypoint to the program.
///
- public sealed class EntryPoint
+ public sealed class Program
{
- ///
- /// A delegate used during initialization of the CLR from Dalamud.Injector.Boot.
- ///
- /// Count of arguments.
- /// char** string arguments.
- /// Return value (HRESULT).
- public delegate int MainDelegate(int argc, IntPtr argvPtr);
-
///
/// Start the Dalamud injector.
///
- /// Count of arguments.
- /// byte** string arguments.
+ /// Command line arguments.
/// Return value (HRESULT).
- public static int Main(int argc, IntPtr argvPtr)
+ public static int Main(string[] argsArray)
{
try
{
- List args = new(argc);
-
- unsafe
- {
- var argv = (IntPtr*)argvPtr;
- for (var i = 0; i < argc; i++)
- args.Add(Marshal.PtrToStringUni(argv[i]));
- }
+ // API14 TODO: Refactor
+ var args = argsArray.ToList();
+ args.Insert(0, Assembly.GetExecutingAssembly().Location);
Init(args);
args.Remove("-v"); // Remove "verbose" flag
diff --git a/Dalamud.Injector.Boot/dalamud.ico b/Dalamud.Injector/dalamud.ico
similarity index 100%
rename from Dalamud.Injector.Boot/dalamud.ico
rename to Dalamud.Injector/dalamud.ico
diff --git a/Dalamud.sln b/Dalamud.sln
index c3af00f44..ee3c75b25 100644
--- a/Dalamud.sln
+++ b/Dalamud.sln
@@ -1,4 +1,4 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
+Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.32319.34
MinimumVisualStudioVersion = 10.0.40219.1
@@ -27,8 +27,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Dalamud.Boot", "Dalamud.Boo
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud.Injector", "Dalamud.Injector\Dalamud.Injector.csproj", "{5B832F73-5F54-4ADC-870F-D0095EF72C9A}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Dalamud.Injector.Boot", "Dalamud.Injector.Boot\Dalamud.Injector.Boot.vcxproj", "{8874326B-E755-4D13-90B4-59AB263A3E6B}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud.Test", "Dalamud.Test\Dalamud.Test.csproj", "{C8004563-1806-4329-844F-0EF6274291FC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dependencies", "Dependencies", "{E15BDA6D-E881-4482-94BA-BE5527E917FF}"
@@ -49,8 +47,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InteropGenerator", "lib\FFX
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InteropGenerator.Runtime", "lib\FFXIVClientStructs\InteropGenerator.Runtime\InteropGenerator.Runtime.csproj", "{A6AA1C3F-9470-4922-9D3F-D4549657AB22}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Injector", "Injector", "{19775C83-7117-4A5F-AA00-18889F46A490}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utilities", "Utilities", "{8F079208-C227-4D96-9427-2BEBE0003944}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cimgui", "external\cimgui\cimgui.vcxproj", "{8430077C-F736-4246-A052-8EA1CECE844E}"
@@ -103,10 +99,6 @@ Global
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Debug|Any CPU.Build.0 = Debug|x64
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|Any CPU.ActiveCfg = Release|x64
{5B832F73-5F54-4ADC-870F-D0095EF72C9A}.Release|Any CPU.Build.0 = Release|x64
- {8874326B-E755-4D13-90B4-59AB263A3E6B}.Debug|Any CPU.ActiveCfg = Debug|x64
- {8874326B-E755-4D13-90B4-59AB263A3E6B}.Debug|Any CPU.Build.0 = Debug|x64
- {8874326B-E755-4D13-90B4-59AB263A3E6B}.Release|Any CPU.ActiveCfg = Release|x64
- {8874326B-E755-4D13-90B4-59AB263A3E6B}.Release|Any CPU.Build.0 = Release|x64
{C8004563-1806-4329-844F-0EF6274291FC}.Debug|Any CPU.ActiveCfg = Debug|x64
{C8004563-1806-4329-844F-0EF6274291FC}.Debug|Any CPU.Build.0 = Debug|x64
{C8004563-1806-4329-844F-0EF6274291FC}.Release|Any CPU.ActiveCfg = Release|x64
@@ -188,8 +180,6 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {5B832F73-5F54-4ADC-870F-D0095EF72C9A} = {19775C83-7117-4A5F-AA00-18889F46A490}
- {8874326B-E755-4D13-90B4-59AB263A3E6B} = {19775C83-7117-4A5F-AA00-18889F46A490}
{4AFDB34A-7467-4D41-B067-53BC4101D9D0} = {8F079208-C227-4D96-9427-2BEBE0003944}
{C9B87BD7-AF49-41C3-91F1-D550ADEB7833} = {8BBACF2D-7AB8-4610-A115-0E363D35C291}
{E0D51896-604F-4B40-8CFE-51941607B3A1} = {8BBACF2D-7AB8-4610-A115-0E363D35C291}