Articles of pinvoke

Destinazione DLL nativa a 32 bit o 64 bit a seconda dell’ambiente

Ho una DLL nativa che viene fornito in entrambe le versioni a 32 bit e 64 bit (x86). Voglio creare un wrapper che funziona su entrambe le architetture (Any CPU) e carica la versione corretta della DLL a seconda dell’ambiente corrente (32 bit o 64 bit, in fase di esecuzione!). Questo processo dovrebbe avvenire automaticamente, […]

Gli attributi P / Invoke sono facoltativi per gli array di marshalling?

Supponiamo che esista una funzione nativa con un’interfaccia C pura come la seguente, esportata da una DLL nativa: // NativeDll.cpp extern “C” void __stdcall FillArray( int fillValue, int count, int* data) { // Assume parameters are OK… // Fill the array for (int i = 0; i < count; i++) { data[i] = fillValue; } […]

Imposta l’attributo DllImport in modo dinamico

Sto facendo uso di una dll esterna non gestita utilizzando PInvoke e l’attributo DllImport. per esempio. [DllImport(“mcs_apiD.dll”, CharSet = CharSet.Auto)] private static extern byte start_api(byte pid, byte stat, byte dbg, byte ka); Mi chiedo se sia ansible modificare dynamicmente i dettagli del file dll (mcs_apiD.dll in questo esempio) in qualche modo, se ad esempio volessi […]

Utilizzare una libreria C dal codice C #

Ho una libreria in linguaggio C. è ansible usarlo in C sharp. http://zbar.sourceforge.net/ è il link della biblioteca che voglio usare

Rileva la chiusura e l’apertura del coperchio del laptop

È ansible rilevare quando il coperchio di un laptop è aperto o chiuso? Da quello che ho letto, questo non è ansible, ma SO mi ha aiutato con l’imansible prima. L’unica cosa che ho trovato che potrebbe essere nella giusta direzione è un post sul blog MSDN sugli IOCTL necessari per segnalare i pulsanti di […]

Restituire una stringa da PInvoke?

Sto usando PInvoke per l’interoperabilità tra codice nativo (C ++) e codice gestito (C #). Scrivo solo una semplice funzione che ottiene una stringa dal codice c ++. Il mio codice assomiglia al codice C #: [DllImport(“MyDll.dll”)] private static extern string GetSomeText(); public static string GetAllValidProjects() { string s = GetSomeText(); return s; } Codice […]

Cattura la schermata sulla sessione desktop del server

Ho sviluppato un framework di test GUI che esegue l’integrazione del test del nostro sito Web aziendale su base pianificata. Quando qualcosa non funziona, ci vorrà uno screenshot del desktop, tra le altre cose. Viene eseguito automaticamente su un utente connesso su un Windows Server 2008 dedicato. Il problema è che prendendo uno screenshot su […]

Mostra finestra di dialogo Autenticazione in C # per Windows Vista / 7

Voglio ottenere le credenziali di accesso alla rete da un utente. Sto usando .NET 3.5 con C #. Fino ad ora ho usato la chiamata CredUIPromptForCredentials (un link molto utile su come usarlo può essere trovato qui ) Il mio problema è che la chiamata all’API CredUIPromptForCredentials mostra la vecchia finestra di dialogo delle credenziali […]

Come posso passare un puntatore a un array usando p / invoke in C #?

Firma dell’API di esempio C: void Func(unsigned char* bytes); In C, quando voglio passare un puntatore a un array, posso fare: unsigned char* bytes = new unsigned char[1000]; Func(bytes); // call Come faccio a tradurre l’API di cui sopra in P / Invoke in modo tale che possa passare un puntatore all’array di byte C […]

Come faccio a pinvoke su GetWindowLongPtr e SetWindowLongPtr su piattaforms a 32 bit?

Voglio P / Invoke per GetWindowLongPtr e SetWindowLongPtr , e sto vedendo informazioni contrastanti su di loro. Alcune fonti dicono che, su piattaforms a 32 bit, GetWindowLongPtr è solo una macro del preprocessore che chiama GetWindowLong e GetWindowLongPtr non esiste come punto di ingresso in user32.dll. Per esempio: La voce pinvoke.net per SetWindowLongPtr ha un […]