You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.9 KiB

  1. <p align="center">
  2. <img src="https://raw.githubusercontent.com/NeighTools/UnityDoorstop/master/docs/logo_sm.png"/>
  3. </p>
  4. ![Github All Releases](https://img.shields.io/github/downloads/NeighTools/UnityDoorstop/total.svg)
  5. ![GitHub release](https://img.shields.io/github/release/NeighTools/UnityDoorstop.svg)
  6. ![license](https://img.shields.io/github/license/NeighTools/UnityDoorstop.svg)
  7. *Run managed code before Unity does!*
  8. # Unity Doorstop
  9. Doorstop is a tool to execute managed assemblies inside Unity as early as possible!
  10. This repository is indented mainly for developers!
  11. Developers should package Doorstop into their applications for the end-users.
  12. ## Features
  13. * **Runs first**: Doorstop runs its own code before Unity has an ability to do so.
  14. * **Configurable**: A very basic configuration file allows to specify your own assembly to execute!
  15. * **Public domain!** You are fully free to embed Doorstop into your application!
  16. ## Guides for users and developers on [the wiki](https://github.com/NeighTools/UnityDoorstop/wiki)
  17. ## Building
  18. To build, you will need:
  19. * Visual Studio 2017 (2015 might work as well with some modifications)
  20. * Visual C++ Toolset v140
  21. * .NET Framework 3.5 or newer (only for the example, not used by the proxy)
  22. * Python (only to generate proxy functions; not needed to build)
  23. Clone, open in Visual Studio, select the platform (x86/x64) and build.
  24. #### Custom proxy functions
  25. Doorstop's proxy is flexible and allows to be load as different DLLs.
  26. You can modify which functions you want to proxy by adding/removing function names in `Proxy/proxydefs.txt` and running `proxygen/proxy_gen.py ../Proxy/proxydefs.txt` to generate an appropriate proxy functions.
  27. The current set up allows to use the proxy for the following DLLs:
  28. * `winhttp.dll` (All exports)
  29. * `iphlpapi.dll` (Only `GetIpAddrTable`)
  30. (WIP: Currently all build results are placed in separate folders; will be changed later)