mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-27 19:54:27 +00:00 
			
		
		
		
	 f784fb2000
			
		
	
	
		f784fb2000
		
	
	
	
	
		
			
			We want to replace libnethost as it gives us issues with some compilers. Our implementation tries to mimic libnethost's hostfxr_resolver search logic. We try to use the same function names for easier comparing in case we need to update this in the future.
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Licensed to the .NET Foundation under one or more agreements.
 | |
| // The .NET Foundation licenses this file to you under the MIT license.
 | |
| 
 | |
| #ifndef __CORECLR_DELEGATES_H__
 | |
| #define __CORECLR_DELEGATES_H__
 | |
| 
 | |
| #include <stdint.h>
 | |
| 
 | |
| #if defined(_WIN32)
 | |
|     #define CORECLR_DELEGATE_CALLTYPE __stdcall
 | |
|     #ifdef _WCHAR_T_DEFINED
 | |
|         typedef wchar_t char_t;
 | |
|     #else
 | |
|         typedef unsigned short char_t;
 | |
|     #endif
 | |
| #else
 | |
|     #define CORECLR_DELEGATE_CALLTYPE
 | |
|     typedef char char_t;
 | |
| #endif
 | |
| 
 | |
| #define UNMANAGEDCALLERSONLY_METHOD ((const char_t*)-1)
 | |
| 
 | |
| // Signature of delegate returned by coreclr_delegate_type::load_assembly_and_get_function_pointer
 | |
| typedef int (CORECLR_DELEGATE_CALLTYPE *load_assembly_and_get_function_pointer_fn)(
 | |
|     const char_t *assembly_path      /* Fully qualified path to assembly */,
 | |
|     const char_t *type_name          /* Assembly qualified type name */,
 | |
|     const char_t *method_name        /* Public static method name compatible with delegateType */,
 | |
|     const char_t *delegate_type_name /* Assembly qualified delegate type name or null
 | |
|                                         or UNMANAGEDCALLERSONLY_METHOD if the method is marked with
 | |
|                                         the UnmanagedCallersOnlyAttribute. */,
 | |
|     void         *reserved           /* Extensibility parameter (currently unused and must be 0) */,
 | |
|     /*out*/ void **delegate          /* Pointer where to store the function pointer result */);
 | |
| 
 | |
| // Signature of delegate returned by load_assembly_and_get_function_pointer_fn when delegate_type_name == null (default)
 | |
| typedef int (CORECLR_DELEGATE_CALLTYPE *component_entry_point_fn)(void *arg, int32_t arg_size_in_bytes);
 | |
| 
 | |
| typedef int (CORECLR_DELEGATE_CALLTYPE *get_function_pointer_fn)(
 | |
|     const char_t *type_name          /* Assembly qualified type name */,
 | |
|     const char_t *method_name        /* Public static method name compatible with delegateType */,
 | |
|     const char_t *delegate_type_name /* Assembly qualified delegate type name or null,
 | |
|                                         or UNMANAGEDCALLERSONLY_METHOD if the method is marked with
 | |
|                                         the UnmanagedCallersOnlyAttribute. */,
 | |
|     void         *load_context       /* Extensibility parameter (currently unused and must be 0) */,
 | |
|     void         *reserved           /* Extensibility parameter (currently unused and must be 0) */,
 | |
|     /*out*/ void **delegate          /* Pointer where to store the function pointer result */);
 | |
| 
 | |
| #endif // __CORECLR_DELEGATES_H__
 |