Articles of pinvoke

Llamando al código C ++ desde C # error usando referencias en c ++ ref en c #

Así que en mi archivo c ++ .dll obtuve la siguiente función: DLL void GetUserPass(char* &userName, char* &passWord) { userName = “ceva”; passWord = “altceva”; } Ahora quiero llamar a esto desde c # pero me da un error: [DllImport(“myDLL.dll”)] private static extern void GetUserPass(ref string userName, ref string passWord); static void f() { string […]

Corregir matrices de C # a C ++ y viceversa: PInvokeStackImbalance

Tengo una función de C ++ a la que me gustaría acceder desde C #. El problema es que sigo recibiendo excepciones de PInvokeStackImbalance y no sé por qué. Todo funciona bien y, como se esperaba, cuando se verifica esa excepción está desactivado La firma de mi función de C ++ es: extern “C” double […]

¿Por qué necesito definir DLLImport con el atributo EntryPoint?

Al pasar por envoltorios generados por SWig , encuentro que los PInvokes están sin ningún punto de entrada, pero en algunos lugares encuentro que están definidos con el Punto de entrada. Entonces cual es la diferencia entre ellos, Ex: // Definido sin punto de entrada [DllImport(“Kernel32.dll”, CharSet = CharSet.Unicode)] public static extern bool ReadFile( HandleRef […]

¿Cómo pasar un puntero de C # a la función nativa en DLL?

Esta es la firma de mi función en DLL: int __stdcall myFun( void * const context, const char * const pszFileName, const unsigned int buffSize, void * const pWaveFormatex ); Todos los parámetros están [en]. El usuario debe pasar un puntero a una estructura WAVEFORMATEX través del último parámetro. A su regreso, se llenará. Todo […]

Invierta PInvoke y cree un progtwig C # no administrado completo

Sé que esta es una pregunta extraña, pero la idea es simple: prefiero la syntax de C # en lugar de C ++: -Configuradores y captadores directamente dentro de una propiedad -interfaces-foreach statement -posibilidad de declarar un operador de conversión implícita otras cosas pequeñas … Lo que realmente no sé es si es posible importar […]

¿Es seguro el uso de .NET de WSAStartup para aplicaciones de 64 bits?

Existe una discrepancia entre la versión de .NET Framework y la versión nativa de Win32 de la estructura WSAData, para aplicaciones de 64 bits, porque el orden de los campos es diferente. Copié la versión .NET para usarla en nuestro producto basado en C # y un compañero de trabajo está preocupado de que haya […]

C # – Convertir IntPtr apuntando a la estructura sockaddr a dirección IP

De una función nativa P / IntPtr , obtengo un IntPtr que apunta a una estructura sockaddr . ¿Cómo puedo convertirlo en una dirección IPAddress ? ¡Gracias!

C # Cómo usar CallNtPowerInformation con Interop para obtener SYSTEM_POWER_INFORMATION

Estoy intentando escribir un pequeño progtwig que se ejecuta como un servicio y supervisa si un usuario está activo o no. Si el usuario está inactivo (sin mouse / teclado) durante una hora, entonces se eliminan ciertos procesos. Lo tengo funcionando si lo ejecuta un usuario utilizando LASTINPUTINFO de user32.dll, pero no funcionará como un […]

DllImport – ANSI vs. Unicode

Tengo algunas preguntas sobre las posibles respuestas para la siguiente pregunta del examen: Pregunta: Usted escribe el siguiente segmento de código para llamar a una función desde la Interfaz de progtwigción de aplicaciones (API) de Win32 utilizando la invocación de plataforma. string personName = “N?el”; string msg = “Welcome” + personName + “to club”!”; bool […]

P / Invocar una función pasó un StringBuilder

en un archivo de C # tengo un class Archiver { [DllImport(“Archiver.dll”)] public static extern void archive(string data, StringBuilder response); } los datos de cadena son una entrada, y la respuesta de StringBuilder es donde la función escribe algo El prototipo de la función de archivo (escrito en C) se ve así: void archive(char * […]