Articles of pinvoke

Establecer el atributo DllImport dinámicamente

Estoy haciendo uso de un dll externo no administrado usando PInvoke y el atributo DllImport. p.ej. [DllImport(“mcs_apiD.dll”, CharSet = CharSet.Auto)] private static extern byte start_api(byte pid, byte stat, byte dbg, byte ka); Me pregunto si es posible alterar los detalles del archivo dll (mcs_apiD.dll en este ejemplo) dinámicamente de alguna manera, si, por ejemplo, quisiera […]

Añadir desplazamiento a IntPtr

Estoy buscando una forma de realizar operaciones de puntero en C # o .NET en particular. Quiero hacer algo muy simple Tener un puntero IntPtr Quiero obtener el objeto IntPtr que apunta a 2 bytes más adelante. Leí una publicación que dice que el fragmento de engaño funcionará … IntPtr ptr = new IntPtr(oldptr.ToInt32() + […]

Use una biblioteca C del código C #

Tengo una biblioteca en C-language. es posible usarlo en C sharp. http://zbar.sourceforge.net/ es el enlace de la biblioteca que quiero usar

Pasar una función de callback C # a través de Interop / pinvoke

Estoy escribiendo una aplicación C # que usa servicios de Interop para acceder a funciones en una DLL C ++ nativa. Ya estoy usando alrededor de 10 funciones diferentes que están funcionando. Ahora no estoy seguro de cómo pasar una callback como un parámetro para que la DLL pueda llamar a mi código. Aquí está […]

Detectar el cierre y la apertura de la tapa del portátil

¿Es posible detectar cuándo la tapa de un portátil está abierta o cerrada? Por lo que he leído, esto no es posible, pero SO me ha ayudado con lo imposible antes. Lo único que he encontrado que podría estar en la dirección correcta es una publicación de blog de MSDN sobre IOCTL necesarios para informar […]

¿Devolviendo una cadena de PInvoke?

Estoy usando PInvoke para la interoperabilidad entre el código nativo (C ++) y el código administrado (C #). Solo escribo una función simple que obtiene una cadena del código de C ++. Mi código parece C # Code: [DllImport(“MyDll.dll”)] private static extern string GetSomeText(); public static string GetAllValidProjects() { string s = GetSomeText(); return s; […]

Mostrar el cuadro de diálogo Autenticación en C # para Windows Vista / 7

Quiero obtener credenciales de inicio de sesión de red de un usuario. Estoy usando .NET 3.5 con C #. Hasta ahora he usado la llamada CredUIPromptForCredentials ( aquí se puede encontrar un enlace muy útil sobre cómo usarla) Mi problema es que la CredUIPromptForCredentials API CredUIPromptForCredentials muestra el antiguo diálogo de credenciales de Windows 2000 […]

¿Cómo puedo pasar un puntero a una matriz usando p / invoke en C #?

Firma de API de ejemplo C: void Func(unsigned char* bytes); En C, cuando quiero pasar un puntero a una matriz, puedo hacer: unsigned char* bytes = new unsigned char[1000]; Func(bytes); // call ¿Cómo traduzco la API anterior a P / invocar de modo que pueda pasar un puntero a una matriz de bytes C #?

Pantalla de captura en la sesión de escritorio del servidor

Desarrollé un marco de prueba GUI que realiza pruebas de integración del sitio web de la compañía de manera progtwigda. Cuando algo falla, tomará una captura de pantalla del escritorio, entre otras cosas. Esto se ejecuta sin supervisión en un usuario conectado en un servidor de Windows dedicado 2008. El problema es tomar una captura […]

¿Cómo pinvoke a GetWindowLongPtr y SetWindowLongPtr en plataformas de 32 bits?

Quiero P / Invocar a GetWindowLongPtr y SetWindowLongPtr , y veo información conflictiva sobre ellos. Algunas fonts dicen que, en plataformas de 32 bits, GetWindowLongPtr es solo una macro de preprocesador que llama a GetWindowLong, y GetWindowLongPtr no existe como un punto de entrada en user32.dll. Por ejemplo: La entrada de pinvoke.net para SetWindowLongPtr tiene […]