2009-12-21 13 views
6

Cualquier clase de ayuda en cualquier lugar, que Wrapps API KERNEL32, con todas las funciones métodos y estructuras? O cualquier generador de envoltura?Envoltura C# API para kernel32.dll

Quiero que todos los métodos de kernel32.dll en C# como esta:

[DllImport("kernel32.dll",EntryPoint="RtlMoveMemory")] 
     public static extern void RtlMoveMemory(int des, int src, int count); 

     [DllImport("kernel32.dll", EntryPoint = "OpenProcess")] 
     public static extern IntPtr OpenProcess(uint dwDesiredAccess, bool bInheritHandle, uint dwProcessId); 

     [DllImport("kernel32", CharSet = CharSet.Ansi)] 
     public extern static int GetProcAddress(int hwnd, string procedureName); 

     [DllImport("kernel32.dll", EntryPoint = "GetModuleHandle")] 
     public static extern int GetModuleHandle(string lpModuleName); 

     [DllImport("kernel32.dll", EntryPoint = "VirtualAllocEx")] 
     public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect); 

     [DllImport("kernel32")] 
     [return: MarshalAs(UnmanagedType.Bool)] 
     public static extern bool CloseHandle(IntPtr hObject); 

     [DllImport("kernel32", EntryPoint = "CreateRemoteThread")] 
     public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, uint lpThreadId); 

     [DllImport("kernel32.dll", EntryPoint = "WriteProcessMemory")] 
     public static extern IntPtr WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] buffer, uint size, IntPtr lpNumberOfBytesWritten); 
+0

Una pregunta: ¿por qué? –

+3

Hay 1359 puntos de entrada, demasiado. Asegúrate de usar una buena fuente para las declaraciones, las que tienes están equivocadas. –

+0

Si genera todos los puntos de entrada, después no pierda el tiempo para hacerlo. Y generar código fuente es mejor, no errores en el código –

Respuesta

7

lo dudo.

Ha visto http://www.pinvoke.net/?

+0

Oh, sí, pero no admite VS 2008 !!! Es una lástima !! otra herramienta o clase de código fuente con todas las funciones de kernel32.dll ?? gracias –

+1

El complemento VS puede no ser compatible con 2008, eso no significa que no pueda usar el contenido del sitio web. Puede parecer laborioso buscar las API y copiar el código, pero aún así es mejor escribirlo desde cero. En el lado positivo, solo necesitas hacer esto una vez. – donovan

+0

laboriosa búsqueda de las API y copia del código ... quizás, pero cualquier solución de práctica para mí, a la generación de código de automatización para wrapper de kernel32.dll, gdi.dll, ... ¡¡GRACIAS !! –

Cuestiones relacionadas