Все вопросы: [pinvoke]

253 вопросов

похожие теги:
0
голосов
1ответов
60 просмотров

Как класс .NET Framework вызывает API платформы?

Мы знаем, что класс .NET Framework инкапсулирует Win32 API, теперь мне интересно, как класс .NET Framework вызывает Win32 API? На данный момент мне известно: Через P / Invoke VC ++ / CLI И 1, и 2 Кто-нибудь знает ответ?

0
голосов
1ответов
891 просмотров

C # Marshal / Pinvoke CBitmap?

Я не могу понять, как маршалировать CBitmap C ++ в класс C # Bitmap или Image. Мой импорт выглядит так: [DllImport (@ "test.dll", CharSet = CharSet.Unicode)] общедоступный статический extern IntPtr GetBitmap (System.IntPtr hwnd, int nBMPWIDTH, int nBMPHEIGHT); Раздел H-файла выг...

1
голосов
1ответов
782 просмотров

Вызов CreateFile на пути к физическому устройству в цикле

У меня есть код C #, который вызывает CreateFile на другом пути к физическому устройству каждый раз через цикл (например, \. \ PhysicalDrive1, затем \. \ PhysicalDrive2, ...) через pInvoke, а затем, используя возвращенный дескриптор,другие вещи низкого уровня Windows.В конце цикла он вызывает Cl...

2
голосов
2ответов
627 просмотров

Свернуть / Восстановить со скрытой панелью заголовков увеличивает окно форм Windows

Я столкнулся с этой проблемой в Windows Forms после использования PInvoke SetWindowLongPtr для удаления заголовка (WS_CAPTION) из окна Sizable. После этого всякий раз, когда окно свернуто или развернуто, а затем восстановлено до нормального состояния, оно увеличивается (по границе CaptionHeight ...

-1
голосов
2ответов
1957 просмотров

WTSQueryUserToken не работает, getlasterror () возвращает 1723

У меня есть служба Windows, работающая под учетными данными системной учетной записи. Служба периодически опрашивает окна на предмет идентификатора активного сеанса консоли, то есть интерактивного пользователя, вошедшего в систему Windows, а затем извлекает токен пользователя, связанный с иденти...

5
голосов
1ответов
11151 просмотров

C #: передача массива строк в C ++ DLL

Я пытаюсь передать несколько строк из массива в свою библиотеку C ++. Функция библиотеки C ++: extern "C" _declspec(dllexport) void printnames(char** ppNames, int iNbOfNames) { for(int iName=0; iName < iNbOfNames; iName++) { OutputDebugStringA(ppNames[iName]); } } ...

2
голосов
2ответов
471 просмотров

C #: проблема с загрузкой C ++ DLL

В моем коде я могу загрузить «MessageBoxA» из user32.dll и использовать его, но если я попытаюсь загрузить и использовать функцию из моей DLL, у меня произойдет сбой. Мой код C #: [DllImport("SimpleDLL.dll")] static extern int mymean(int a, int b, int c); [DllImport("user32.dll")] static e...

2
голосов
2ответов
1260 просмотров

C # - получить событие из SetWindowText

Мы пишем плагин для существующего приложения VB6 (через COM-взаимодействие), и нам требуются некоторые функции, которые они не поддерживают.Мы могли бы легко получить требуемую функциональность, если бы могли каким-то образом получать событие, когда текст определенного элемента управления в их о...

1
голосов
2ответов
1144 просмотров

Как мне вызвать эту встроенную функцию dll из C #?

Вот собственная функция (Delphi 7): function Foo(const PAnsiChar input) : PAnsiChar; stdcall; export; var s : string; begin s := SomeInternalMethod(input); Result := PAnsiChar(s); end; Мне нужно вызвать это из C #, но имя библиотеки не известно во время компиляции, поэтому я дол...

12
голосов
3ответов
5129 просмотров

Как я могу игнорировать поле при маршалинге структуры с помощью P / Invoke

Я хочу маршалировать структуру для использования с P / Invoke, но эта структура содержит поле, которое имеет отношение только к моему управляемому коду, поэтому я не хочу, чтобы он маршалировался, поскольку он не принадлежит собственномуструктура.Это вообще возможно?Я искал атрибут, похожий на N...

5
голосов
3ответов
1288 просмотров

Логический маршаллинг с LayoutKind.Explicit, это сломано или не соответствует задумке?

Во-первых, считается, что тип логического типа имеет тип маршала по умолчанию, состоящий из четырехбайтовых значений. Итак, следующий код работает: struct A { public bool bValue1; public int iValue2; } struct B { public int iValue1; pu...

6
голосов
2ответов
7008 просмотров

Как мне объявить эту структуру C для взаимодействия?

Мне нужно использовать устаревшую подпрограмму C в разрабатываемом приложении. Код здесь работает, но мне нужно преобразовать почти все поля в массивы символов, чтобы использовать его. Есть способ лучше? Я пробовал какую-то версию с использованием строк, но безрезультатно. Это код, найденный ...

3
голосов
1ответов
4292 просмотров

Невозможно использовать pinvoke для отправки WM_CLOSE в окно проводника Windows

У меня есть приложение C #, которое использует метод Pinvoke SendMessage для отправки сообщения «закрыть окно» (WM_CLOSE / 16) в различные окна вне приложения.Это отлично работает, за исключением случаев, когда рассматриваемое окно является окном Windows Explorer.У меня нет исключения, но окно н...

7
голосов
3ответов
2763 просмотров

Синтаксис F # для подписи P / Invoke с использованием MarshalAs

Я не уверен в синтаксисе этого.Я пытаюсь перевести этот код C # на F #. struct LASTINPUTINFO { public uint cbSize; public uint dwTime; } public class IdleTimer { [DllImport("User32.dll")] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool GetLastInputInfo(...

3
голосов
2ответов
1455 просмотров

Поймать исключение DllNotFoundException из P / Invoke

Найдено сообщение с решением : Как сделатьЯ обрабатываю неудачный DllImport? Я пишу приложение, которое проверяет версию ОС, чтобы делать разные вещи в зависимости от того, использует ли хост версию Windows Vista или NT.В Vista-серии загружаются некоторые библиотеки DLL (с помощью DllImpor...

2
голосов
3ответов
820 просмотров

Есть ли управляемый API для kernel32.searchpath?

Есть ли управляемый API для kernel32.searchpath? т.е. не использовать пинвок. http://www.pinvoke.net/default.aspx/kernel32.searchpath

9
голосов
3ответов
3415 просмотров

В чем разница между экземпляром делегата и указателем метода?

Я думал, что экземпляр делегата взаимозаменяем с экземпляром функции. Возьмите следующий код: delegate int AddDelegate(int a, int b); AddDelegate DelegateInstance; public void DoStuff() { //I can call this without a delegate "instance": MethodThatTakesAdd(Add); //I can also ...

3
голосов
3ответов
5748 просмотров

Структура маршаллинга со встроенным указателем с C # на неуправляемый драйвер

Я пытаюсь связать C # (.NET Compact Framework 3.5) с драйвером потока Windows CE 6 R2 с помощью вызовов P / Invoked DeviceIoControl (). Для одного из кодов IOCTL драйверу требуется входной буфер DeviceIoControl, который представляет собой следующую неуправляемую структуру, содержащую встроенный ...

1
голосов
1ответов
172 просмотров

PInvoke на платформе Windows Mobile

Итак, я пытаюсь вызвать функцию, которая есть в моей неуправляемой dll C ++. void foo(char* in_file, char * out_file) В моем приложении C # я объявляю ту же функцию, что и [DllImport("dll.dll")] public static extern void foo(byte[] in_file, byte[] out_file); Фактические параметры, ...

0
голосов
1ответов
518 просмотров

Отправить сообщение в адресную строку проводника Windows

Как отправить сообщение в адресную строку проводника Windows на C #?

33
голосов
4ответов
32124 просмотров

Получение заголовка / описания кода системной ошибки Windows из его шестнадцатеричного числа

Я возился с некоторыми функциями Windows, используя p / invoke.Иногда я получаю код ошибки, отличный от ERROR_SUCCESS (такое странное имя). Есть ли способ найти их в программе?Например, если я получаю ошибку 1017. Могу ли я сообщить пользователю Система попыталась загрузить или восста...

7
голосов
7ответов
4263 просмотров

Вызов неуправляемого кода из C # - возврат структуры с массивами

[РЕДАКТИРОВАТЬ] Я изменил источник, как предложил Стивен Мартин (выделено жирным шрифтом). И также добавил исходный код C ++. Я хотел бы вызвать неуправляемую функцию в самописной dll C ++. Эта библиотека считывает общую память машины для получения информации о состоянии стороннего программно...

0
голосов
1ответов
182 просмотров

Может ли кто-нибудь найти эквивалентный код С #

Это код C ++ CreateImageSnapshot, (int, eImageFormat, BYTE**) в VC ++, который мы реализуем BYTE** PlayerLib::CreateImageSnapshot (iPlayerRef,static_cast<eImageFormat>(lFormat), &pBuffer); здесь мне нужно импортировать dll и проделать тот же процесс в C # .. Может ли кт...

2
голосов
1ответов
1349 просмотров

P / Invoke Interop Assistant: это правда?

У меня есть следующие структуры на C ++: (Использование пакета прагмы 1) typedef struct _wfs_cdm_physicalcu { LPSTR lpPhysicalPositionName; CHAR cUnitID[5]; ULONG ulInitialCount; ULONG ulCount; ULONG ulRejectCount; ULO...

1
голосов
2ответов
485 просмотров

Разъяснение, как правильно объявлять интерфейсы взаимодействия

Это просто вопрос о том, как написать код для импорта COM. Насколько я понимаю, правильная реализация интерфейсов взаимодействия состоит в следующем: Все сигнатуры методов должны соответствовать совместимым образом. Методы должны появляться в интерфейсе .Net в том же порядке, что и в не...

9
голосов
3ответов
3462 просмотров

EntryPointNotFoundException при использовании TaskDialog в C #

Я использую следующий код для вызова TaskDialog. [DllImport("ComCtl32", CharSet = CharSet.Unicode, PreserveSig = false)] internal static extern void TaskDialogIndirect( [In] ref TASKDIALOGCONFIG pTaskConfig, [Out] out int pnButton, [Out] out int pnRadioButton, ...

0
голосов
2ответов
490 просмотров

Ошибка SetWindowsHookEx на beta2 x64

Вздох, у меня есть код из codeproject ( http: //www.codeproject.com / KB / cs / globalhook.aspx ) для перехвата глобальных событий клавиатуры и мыши.Неожиданно теперь, когда я установил бета-версию 2 Visual Studio 2010 и .NET framework 4.0, я ломаюсь на этот код: hKeyboardHook = S...

1
голосов
1ответов
1174 просмотров

Открыть / закрыть соединение с UNC без учетных данных

У меня есть клиентское приложение .NET, которое периодически теряет соединение с общим ресурсом UNC, где пользователь либо находится в домене, либо имеет локальную учетную запись с такими же учетными данными на сервере.И SO, и Google имеют множество примеров использования LogonUser и WNetAddConn...

3
голосов
2ответов
834 просмотров

PInvoke - чтение значения строкового поля - «Попытка чтения или записи в защищенную память»

У меня проблемы с доступом к некоторым строковым полям в COM-интерфейсе.Вызов целочисленных полей не приводит к ошибке.При попытке вызвать clientID(), deviceID() или key() я получаю старую ошибку «Попытка чтения или записи в защищенную память» . Вот исходный код интерфейса: (код взят из з...

1
голосов
3ответов
696 просмотров

PInvoke - как представить поле из COM-интерфейса

Я имею в виду структуру COM, которая начинается следующим образом: [scriptable, uuid(ae9e84b5-3e2d-457e-8fcd-5bbd2a8b832e)] interface nsICacheSession : nsISupports { /** * Expired entries will be doomed or evicted if this attribute is set to * true. If false, expired entries wi...