Я пытаюсь назвать PrintDlgW Win32 API от C# через P/Invoke. С помощью Помощника P/Invoke Interop 1.0 от Microsoft, я могу объявить необходимые структуры данных и функции импорта от DLL. Но как использовать HDC или HWND в C#?Заранее спасибо.
Как сказали wcoenen и Дэйв Маркл , у вас есть старая версия, которая не имеет опции --keep-local
. Более конкретно этот вариант был представлен в версии 1.5.
В качестве обходного решения:
svn delete
svn commit
svn: ignore
, чтобы они больше не возвращались! Это может облегчить это
using HWND = System.IntPtr;
Затем используйте HWND в своем pInvoke..., чтобы облегчить чтение и сохранить его «таким же», как подпись pinvoke.
Надеюсь, что это поможет, С уважением, Том.
-121--4378620-Этот сайт имеет хорошие примеры со структурами, уже определенными для нескольких API. Структура здесь .
HWND в C++ на самом деле является void *, который в C# представлен типом IntPtr.
Это может упростить задачу
using HWND = System.IntPtr;
Затем используйте HWND в вашем pInvoke... чтобы облегчить чтение и сохранить его "таким же", как сигнатура pinvoke.
Надеюсь, это поможет, С наилучшими пожеланиями, Том.