Sto provando a chiamare l'API Win32 PrintDlgW da C# tramite P/Invoke. Con l'aiuto di P/Invoke Interop Assistant 1.0 di Microsoft, sono in grado di dichiarare le strutture dati necessarie e importare le funzioni dalla DLL. Ma come usare l'HDC o l'HWND in C#? Grazie in anticipo.Come sono rappresentati i tipi Win32 in C# P/Invoke?
6
A
risposta
2
4
HWND in C++ è davvero un vuoto *, che è rappresentato in C# dal tipo IntPtr.
1
Potrebbe rendere più facile fare questo
using HWND = System.IntPtr;
Quindi utilizzare HWND nella vostra PInvoke ... per rendere più facile la lettura e la osservano "lo stesso", come la firma PInvoke.
Spero che questo aiuti, Cordiali saluti, Tom.
Problemi correlati
- 1. Come sono rappresentati i 4 byte di caratteri in C#
- 2. Come sono rappresentati float e double in C++ (gcc)?
- 3. I puntatori sono tipi primitivi in C++?
- 4. Come vengono rappresentati e passati i lambda di C++ 11?
- 5. Come vengono rappresentati i bignum internamente?
- 6. C# PInvoke out string declaration
- 7. Perché i tipi di dati standard non sono utilizzati nell'API Win32?
- 8. Verifica se i tipi (primitivi) sono fondibili in C++
- 9. Quali sono i tipi di ritorno degli operatori in C++?
- 10. I tipi Null sono tipi di riferimento?
- 11. come vengono rappresentati i riferimenti all'oggetto C# in memoria/in fase di esecuzione (nel CLR)?
- 12. PInvoke sbilancia lo stack
- 13. Quali sono i diversi tipi di casi?
- 14. PInvoke char * nella DLL C gestita come stringa in C#. Problema con caratteri nulli
- 15. L'operatore + = con i tipi nullable in C#
- 16. Colori in C++ console win32
- 17. Object oriented C++ win32?
- 18. Come trasferiscono i tipi F # a C#?
- 19. I tipi infiniti (noti anche come tipi ricorsivi) non sono possibili in F #?
- 20. C++ Win32 Console Colore
- 21. Come faccio a stampare l'anteprima in Win32 C++?
- 22. I tipi privati sono visibili a tutti?
- 23. Lavorare con i tipi F # in C#
- 24. Come estendere i tipi di C# built-in, come String?
- 25. interruttore/caso javascript: i tipi sono confrontati?
- 26. Come progettare i "tipi" di eccezioni in C++?
- 27. Perché i tipi sigillati sono più veloci?
- 28. I tipi interi a larghezza fissa sono garantiti come typedefs per i tipi standard incorporati?
- 29. Double Buffering? Win32 C++
- 30. Perché i miei tipi non sono contrassegnati come uguali?
Puoi farlo se ti piace che il tuo C# assomigli al C++. Personalmente, eviterei quello. – Bryan