diff --git a/Il2CppInspector.Common/Outputs/CSharpCodeStubs.cs b/Il2CppInspector.Common/Outputs/CSharpCodeStubs.cs index 6274de8..c1386c0 100644 --- a/Il2CppInspector.Common/Outputs/CSharpCodeStubs.cs +++ b/Il2CppInspector.Common/Outputs/CSharpCodeStubs.cs @@ -168,7 +168,7 @@ namespace Il2CppInspector.Outputs } // Merge everything into .sln file - var sln = Resources.SlnTemplate + var sln = Resources.CsSlnTemplate .Replace("%PROJECTDEFINITIONS%", slnProjectDefs.ToString()) .Replace("%PROJECTCONFIGURATIONS%", slnProjectConfigs.ToString()); diff --git a/Il2CppInspector.Common/Outputs/CppScaffolding.cs b/Il2CppInspector.Common/Outputs/CppScaffolding.cs index 97c0423..ecd5114 100644 --- a/Il2CppInspector.Common/Outputs/CppScaffolding.cs +++ b/Il2CppInspector.Common/Outputs/CppScaffolding.cs @@ -2,6 +2,7 @@ // Copyright (c) 2020 Katy Coe - http://www.djkaty.com - https://github.com/djkaty // All rights reserved +using System; using System.Linq; using System.IO; using System.Text; @@ -9,6 +10,7 @@ using System.Text.RegularExpressions; using Il2CppInspector.Reflection; using Il2CppInspector.Cpp; using Il2CppInspector.Model; +using Il2CppInspector.Properties; namespace Il2CppInspector.Outputs { @@ -100,6 +102,33 @@ namespace Il2CppInspector.Outputs } writer.Close(); + + // Write boilerplate code + File.WriteAllText(Path.Combine(outputPath, "il2cpp-init.h"), Resources.Cpp_IL2CPPInitH); + File.WriteAllText(Path.Combine(outputPath, "helpers.h"), Resources.Cpp_HelpersH); + File.WriteAllText(Path.Combine(outputPath, "dllmain.h"), Resources.Cpp_DLLMainH); + File.WriteAllText(Path.Combine(outputPath, "main.cpp"), Resources.Cpp_MainCpp); + File.WriteAllText(Path.Combine(outputPath, "helpers.cpp"), Resources.Cpp_HelpersCpp); + File.WriteAllText(Path.Combine(outputPath, "dllmain.cpp"), Resources.Cpp_DLLMainCpp); + + // Write Visual Studio project and solution files + var projectGuid = Guid.NewGuid(); + var projectName = "IL2CppDLL"; + var projectFile = projectName + ".vcxproj"; + + File.WriteAllText(Path.Combine(outputPath, projectFile), + Resources.CppProjTemplate.Replace("%PROJECTGUID%", projectGuid.ToString())); + + var solutionGuid = Guid.NewGuid(); + var solutionFile = projectName + ".sln"; + + var sln = Resources.CppSlnTemplate + .Replace("%PROJECTGUID%", projectGuid.ToString()) + .Replace("%PROJECTNAME%", projectName) + .Replace("%PROJECTFILE%", projectFile) + .Replace("%SOLUTIONGUID%", solutionGuid.ToString()); + + File.WriteAllText(Path.Combine(outputPath, solutionFile), sln); } private void writeHeader() { diff --git a/Il2CppInspector.Common/Properties/Resources.Designer.cs b/Il2CppInspector.Common/Properties/Resources.Designer.cs index 966d43d..5d351eb 100644 --- a/Il2CppInspector.Common/Properties/Resources.Designer.cs +++ b/Il2CppInspector.Common/Properties/Resources.Designer.cs @@ -60,6 +60,192 @@ namespace Il2CppInspector.Properties { } } + /// + /// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty + /// + ///#define WIN32_LEAN_AND_MEAN + ///#include "windows.h" + ///#include "dllmain.h" + /// + ///// DLL entry point + ///BOOL APIENTRY DllMain( HMODULE hModule, + /// DWORD ul_reason_for_call, + /// LPVOID lpReserved + /// ) + ///{ + /// switch (ul_reason_for_call) + /// { + /// case DLL_PROCESS_ATTACH: + /// init_il2cpp(); + /// CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Run, NULL, [rest of string was truncated]";. + /// + internal static string Cpp_DLLMainCpp { + get { + return ResourceManager.GetString("Cpp-DLLMainCpp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty + /// + ///// Entry point declaration for custom injected code + ///void Run(); + /// + ///// IL2CPP initializer + ///void init_il2cpp();. + /// + internal static string Cpp_DLLMainH { + get { + return ResourceManager.GetString("Cpp-DLLMainH", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty + ///// Logging functions + /// + ///#define WIN32_LEAN_AND_MEAN + ///#define WIN32_EXTRA_LEAN + ///#include <windows.h> + ///#include "helpers.h" + /// + ///// Write some text to the log file + ///void LogWrite(std::string text) + ///{ + /// HANDLE hfile = CreateFileW(LOG_FILE, FILE_APPEND_DATA, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + /// + /// if (hfile == INVALID_HANDLE_VALUE) + /// MessageBox(0, L"Could not open log file", 0, [rest of string was truncated]";. + /// + internal static string Cpp_HelpersCpp { + get { + return ResourceManager.GetString("Cpp-HelpersCpp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty + ///// Logging functions + /// + ///#pragma once + ///#include <string> + ///#include <sstream> + ///#include <iomanip> + /// + ///extern const LPCWSTR LOG_FILE; + /// + ///// Helper function to append text to a file + ///void LogWrite(std::string text); + /// + ///// Helper function to convert a pointer to hex + ///template<typename T> std::string to_hex_string(T i) { + /// std::stringstream stream; + /// stream << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << [rest of string was truncated]";. + /// + internal static string Cpp_HelpersH { + get { + return ResourceManager.GetString("Cpp-HelpersH", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty + ///// IL2CPP application initializer + /// + ///#pragma once + /// + ///#include <cstdint> + /// + ///// Application-specific types + ///#include "il2cpp-types.h" + /// + ///// IL2CPP API function pointers + ///#include "il2cpp-function-ptr.h" + /// + ///// IL2CPP APIs + ///#define DO_API(r, n, p) r (*n) p + ///#include "il2cpp-api-functions.h" + ///#undef DO_API + /// + ///// Application-specific functions + ///#define DO_APP_FUNC(a, r, n, p) r (*n) p + ///#include "il2cpp-functions.h" + ///#und [rest of string was truncated]";. + /// + internal static string Cpp_IL2CPPInitH { + get { + return ResourceManager.GetString("Cpp-IL2CPPInitH", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty + ///// Custom injected code entry point + /// + ///#include "il2cpp-init.h" + ///#include "helpers.h" + /// + ///using namespace app; + /// + ///// Set the name of your log file here + ///extern const LPCWSTR LOG_FILE = L"il2cpp-log.txt"; + /// + ///// Injected code entry point + ///void Run() + ///{ + /// LogWrite("Startup"); + /// + /// // Place your custom code here + ///}. + /// + internal static string Cpp_MainCpp { + get { + return ResourceManager.GetString("Cpp-MainCpp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?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> + /// <ProjectCon [rest of string was truncated]";. + /// + internal static string CppProjTemplate { + get { + return ResourceManager.GetString("CppProjTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft Visual Studio Solution File, Format Version 12.00 + ///# Visual Studio Version 16 + ///VisualStudioVersion = 16.0.30204.135 + ///MinimumVisualStudioVersion = 10.0.40219.1 + ///Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "%PROJECTNAME%", "%PROJECTFILE%", "{%PROJECTGUID%}" + ///EndProject + ///Global + /// GlobalSection(SolutionConfigurationPlatforms) = preSolution + /// Debug|x64 = Debug|x64 + /// Debug|x86 = Debug|x86 + /// Release|x64 = Release|x64 + /// Release|x86 = Release|x86 + /// EndGlobalSection + /// GlobalSection(ProjectConfig [rest of string was truncated]";. + /// + internal static string CppSlnTemplate { + get { + return ResourceManager.GetString("CppSlnTemplate", resourceCulture); + } + } + /// /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> ///<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> @@ -80,6 +266,30 @@ namespace Il2CppInspector.Properties { } } + /// + /// Looks up a localized string similar to Microsoft Visual Studio Solution File, Format Version 12.00 + ///# Visual Studio Version 16 + ///%PROJECTDEFINITIONS% + ///Global + /// GlobalSection(SolutionConfigurationPlatforms) = preSolution + /// Debug|Any CPU = Debug|Any CPU + /// Release|Any CPU = Release|Any CPU + /// EndGlobalSection + /// GlobalSection(ProjectConfigurationPlatforms) = postSolution + ///%PROJECTCONFIGURATIONS% + /// EndGlobalSection + /// GlobalSection(SolutionProperties) = preSolution + /// HideSolutionNode = FALSE + /// EndGlobalSection + ///EndGlobal + ///. + /// + internal static string CsSlnTemplate { + get { + return ResourceManager.GetString("CsSlnTemplate", resourceCulture); + } + } + /// /// Looks up a localized string similar to {%PROJECTGUID%}.Debug|Any CPU.ActiveCfg = Debug|Any CPU /// {%PROJECTGUID%}.Debug|Any CPU.Build.0 = Debug|Any CPU @@ -103,29 +313,5 @@ namespace Il2CppInspector.Properties { return ResourceManager.GetString("SlnProjectDefinition", resourceCulture); } } - - /// - /// Looks up a localized string similar to Microsoft Visual Studio Solution File, Format Version 12.00 - ///# Visual Studio Version 16 - ///%PROJECTDEFINITIONS% - ///Global - /// GlobalSection(SolutionConfigurationPlatforms) = preSolution - /// Debug|Any CPU = Debug|Any CPU - /// Release|Any CPU = Release|Any CPU - /// EndGlobalSection - /// GlobalSection(ProjectConfigurationPlatforms) = postSolution - ///%PROJECTCONFIGURATIONS% - /// EndGlobalSection - /// GlobalSection(SolutionProperties) = preSolution - /// HideSolutionNode = FALSE - /// EndGlobalSection - ///EndGlobal - ///. - /// - internal static string SlnTemplate { - get { - return ResourceManager.GetString("SlnTemplate", resourceCulture); - } - } } } diff --git a/Il2CppInspector.Common/Properties/Resources.resx b/Il2CppInspector.Common/Properties/Resources.resx index 83b30ea..03f94b2 100644 --- a/Il2CppInspector.Common/Properties/Resources.resx +++ b/Il2CppInspector.Common/Properties/Resources.resx @@ -117,6 +117,407 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty + +#define WIN32_LEAN_AND_MEAN +#include "windows.h" +#include "dllmain.h" + +// DLL entry point +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + init_il2cpp(); + CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Run, NULL, 0, NULL); + break; + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + + + // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty + +// Entry point declaration for custom injected code +void Run(); + +// IL2CPP initializer +void init_il2cpp(); + + + // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty +// Logging functions + +#define WIN32_LEAN_AND_MEAN +#define WIN32_EXTRA_LEAN +#include <windows.h> +#include "helpers.h" + +// Write some text to the log file +void LogWrite(std::string text) +{ + HANDLE hfile = CreateFileW(LOG_FILE, FILE_APPEND_DATA, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + + if (hfile == INVALID_HANDLE_VALUE) + MessageBox(0, L"Could not open log file", 0, 0); + + DWORD written; + WriteFile(hfile, text.c_str(), (DWORD) text.length(), &written, NULL); + WriteFile(hfile, "\r\n", 2, &written, NULL); + CloseHandle(hfile); +} + + + // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty +// Logging functions + +#pragma once +#include <string> +#include <sstream> +#include <iomanip> + +extern const LPCWSTR LOG_FILE; + +// Helper function to append text to a file +void LogWrite(std::string text); + +// Helper function to convert a pointer to hex +template<typename T> std::string to_hex_string(T i) { + std::stringstream stream; + stream << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << std::hex << i; + return stream.str(); +} + + + // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty +// IL2CPP application initializer + +#pragma once + +#include <cstdint> + +// Application-specific types +#include "il2cpp-types.h" + +// IL2CPP API function pointers +#include "il2cpp-function-ptr.h" + +// IL2CPP APIs +#define DO_API(r, n, p) r (*n) p +#include "il2cpp-api-functions.h" +#undef DO_API + +// Application-specific functions +#define DO_APP_FUNC(a, r, n, p) r (*n) p +#include "il2cpp-functions.h" +#undef DO_APP_FUNC + +// TypeInfo pointers +#define DO_TYPEDEF(a, n) n ## __Class* n ## __TypeInfo +#include "il2cpp-type-ptr.h" +#undef DO_TYPEDEF + +// Try not to include any Windows symbosl that might cause a naming conflict +#define WIN32_LEAN_AND_MEAN +#define WIN32_EXTRA_LEAN +#define NOIME +#define NOWINRES +#define NOGDICAPMASKS +#define NOVIRTUALKEYCODES +#define NOWINMESSAGES +#define NOWINSTYLES +#define NOSYSMETRICS +#define NOMENUS +#define NOICONS +#define NOKEYSTATES +#define NOSYSCOMMANDS +#define NORASTEROPS +#define NOSHOWWINDOW +#define OEMRESOURCE +#define NOATOM +#define NOCLIPBOARD +#define NOCOLOR +#define NOCTLMGR +#define NODRAWTEXT +#define NOGDI +#define NOUSER +#define NOMB +#define NOMEMMGR +#define NOMETAFILE +#define NOMINMAX +#define NOMSG +#define NOOPENFILE +#define NOSCROLL +#define NOSERVICE +#define NOSOUND +#define NOTEXTMETRIC +#define NOWH +#define NOWINOFFSETS +#define NOCOMM +#define NOKANJI +#define NOHELP +#define NOPROFILER +#define NODEFERWINDOWPOS +#define NOMCX +#define NOIME +#define NOPROXYSTUB +#define NOIMAGE +#define NO +#define NOTAPE +#define ANSI_ONLY +#include "windows.h" + +// Initialize everything +void init_il2cpp() { + // Get base address of IL2CPP module + uintptr_t baseAddress = (uintptr_t) GetModuleHandleW(L"GameAssembly.dll"); + + // Define IL2CPP API function addresses + #define DO_API(r, n, p) n = (r (*) p)(baseAddress + n ## _ptr) + #include "il2cpp-api-functions.h" + #undef DO_API + + // Define function addresses + #define DO_APP_FUNC(a, r, n, p) n = (r (*) p)(baseAddress + a) + #include "il2cpp-functions.h" + #undef DO_APP_FUNC + + // Define TypeInfo variables + #define DO_TYPEDEF(a, n) n ## __TypeInfo = *(n ## __Class**) (baseAddress + a); + #include "il2cpp-type-ptr.h" + #undef DO_TYPEDEF +} + + + // Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty +// Custom injected code entry point + +#include "il2cpp-init.h" +#include "helpers.h" + +using namespace app; + +// Set the name of your log file here +extern const LPCWSTR LOG_FILE = L"il2cpp-log.txt"; + +// Injected code entry point +void Run() +{ + LogWrite("Startup"); + + // Place your custom code here +} + + + <?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>16.0</VCProjectVersion>--> + <Keyword>Win32Proj</Keyword> + <ProjectGuid>{%PROJECTGUID%}</ProjectGuid> + <RootNamespace>Il2CppDLL</RootNamespace> + <!--<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>--> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <!--<PlatformToolset>v142</PlatformToolset>--> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <!--<PlatformToolset>v142</PlatformToolset>--> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <!--<PlatformToolset>v142</PlatformToolset>--> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <!--<PlatformToolset>v142</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|Win32'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;_DEBUG;IL2CPPDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;NDEBUG;IL2CPPDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;IL2CPPDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>NDEBUG;IL2CPPDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="dllmain.cpp" /> + <ClCompile Include="helpers.cpp" /> + <ClCompile Include="main.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="dllmain.h" /> + <ClInclude Include="helpers.h" /> + <ClInclude Include="il2cpp-api-functions.h" /> + <ClInclude Include="il2cpp-init.h" /> + <ClInclude Include="il2cpp-function-ptr.h" /> + <ClInclude Include="il2cpp-functions.h" /> + <ClInclude Include="il2cpp-type-ptr.h" /> + <ClInclude Include="il2cpp-types.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> + + + Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30204.135 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "%PROJECTNAME%", "%PROJECTFILE%", "{%PROJECTGUID%}" +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 + {%PROJECTGUID%}.Debug|x64.ActiveCfg = Debug|x64 + {%PROJECTGUID%}.Debug|x64.Build.0 = Debug|x64 + {%PROJECTGUID%}.Debug|x86.ActiveCfg = Release|x64 + {%PROJECTGUID%}.Debug|x86.Build.0 = Release|x64 + {%PROJECTGUID%}.Release|x64.ActiveCfg = Release|x64 + {%PROJECTGUID%}.Release|x64.Build.0 = Release|x64 + {%PROJECTGUID%}.Release|x86.ActiveCfg = Release|Win32 + {%PROJECTGUID%}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {%SOLUTIONGUID%} + EndGlobalSection +EndGlobal + <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> @@ -753,7 +1154,7 @@ EndProject - + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 %PROJECTDEFINITIONS%