2009-10-21 10 views
8

Cada cierto tiempo me resulta necesario llamar a Win32 desde C#. Aunque lo he hecho una docena de veces, generalmente he olvidado las maquinaciones exactas, así que hojeo la web o el código antiguo y entiendo las declaraciones de DllImport que necesito, etc.¿Hay alguna manera más fácil de llamar a Win32 desde C#?

¿Estoy solo?

¿Hay una clase "Win32" autorizada que tenga las declaraciones necesarias para toda la API de Win32? Parece que debería haberlo. Tal vez me estoy perdiendo algo.

+3

No estás solo. +1 – spender

+1

Definitivamente no solo. +1 –

+1

pinvoke.net es genial, pero un solo ensamblaje de referencia sería tan agradable ... –

Respuesta

1

Esto suena como una gran idea para un proyecto de código abierto.

/em pone en el pensamiento gorra, y se ejecuta a pinvoke.net de

0

Usted podría utilizar Reflector y la búsqueda de Win32Native. Tiene un montón de definiciones que podrías usar para PInvoking.

1

Llegar a las sentencias correctas de DllImport es fácil, como todo el mundo dice, pero para facilitar su uso, normalmente envuelvo las funciones de Win32 que necesito en las clases C# y compilo en mi ensamblado de ayudante principal. Así que la próxima vez solo hago referencia al ensamblaje. Entonces, si necesito alguna función de Win32, es probable que ya esté en mi biblioteca auxiliar si no la agrego.

También asigno los códigos de retorno a Excepciones en lugar de eso, es decir, si HResult no es cero lanzo una Excepción para que mis aplicaciones C# no necesiten saber sobre HResult o devolver códigos alguna vez.

Cuestiones relacionadas