Публикации по теме 'marshalling'
Наступательный P / Invoke: использование Win32 из управляемого кода
С появлением агрессивных инструментов .NET, особенно C #, мы наблюдаем значительное расширение операционных возможностей, особенно в том, что касается запуска нашего кода в памяти (например, Cobalt Strike's execute-assembly ). Хотя C # предоставляет большую функциональность на поверхности, иногда нам нужно использовать функции операционной системы, которые недоступны из управляемого кода. К счастью, .NET предлагает интеграцию с Windows API с помощью технологии, называемой Platform Invoke,..
Вопросы по теме 'marshalling'
Могу ли я создать модульный тест для метода, который упорядочивает значение из IntPtr?
Я использую нативную библиотеку, которая возвращает IntPtr в ячейку памяти, содержащую значение атрибута. Я знаю, каков тип атрибута, и у меня есть метод сортировки значения (берущего IntPtr и тип атрибута) из памяти, на которую указывает указатель....
928 просмотров
schedule
05.01.2023
Вызов загадочной функции C++ CLI
Итак, я пытаюсь вызвать функцию, которая представляет собой управляемую оболочку вокруг объекта OCX. С большими трудностями. Функция есть;
foo(System::Object ^% theBuffer)
где theBuffer — это массив байтов. Шаблон для неуправляемого OCX,...
991 просмотров
schedule
27.05.2022
Создать SecureString из неуправляемой строки Unicode
Я хочу попытаться наилучшим образом связать функцию Windows API CryptUnprotectData и .net SecureString. CryptUnprotectData возвращает структуру DATA_BLOB, состоящую из массива байтов и длины байта. В моей программе это будет строка Unicode UTF-16....
1228 просмотров
schedule
21.11.2022
Что требуется для включения маршалинга для COM-интерфейса?
У меня есть 32-разрядный COM-компонент ATL без библиотеки типов. У него есть фабрика классов для одного данного класса, реализующая несколько интерфейсов.
Когда я использую его в качестве внутрипроцессного сервера, все работает нормально -...
1486 просмотров
schedule
21.03.2022
Маршалинг массивов из VB.NET в COM-объект
У меня есть программа VB6, которая вызывает метод COM, передавая 2 массива в качестве параметров и ожидая заполнения 2 массивов в ответ.
Код таков, где ItemID и ItemClientHandles являются параметрами входного массива, а MyItemServerHandles и Errors...
3134 просмотров
schedule
28.06.2023
Чтение/запись при возникновении исключения защищенной памяти (.net)
Мне сообщает исключение, которое выдается в последней строке, что я пытаюсь читать/записывать в защищенную память. Что я здесь делаю неправильно? Спасибо
int count = (int)WinApi.SendMessage(_chatHwnd, WinApi.LB_GETCOUNT, 0, 0);...
760 просмотров
schedule
08.07.2022
C#: указатель на структуру внутри структуры
Я пытаюсь использовать сортировку в С#. В С++ у меня есть эта структура:
struct aiScene
{
unsigned int mFlags;
C_STRUCT aiNode* mRootNode;
unsigned int mNumMeshes;
C_STRUCT aiMesh** mMeshes;
unsigned int mNumMaterials;...
3389 просмотров
schedule
08.09.2022
Маршалинг с C # на C ++
Мне нужно передать InParameter из моего приложения C # в экспортируемую функцию из VC ++ DLL. Функция принимает 2 параметра:
int func_name (FILE* fp, BYTE& by);
fp - параметр "Вход", а by - параметр "Выход".
Я думал о маршалинге с...
2009 просмотров
schedule
20.06.2022
Маршалинг массива пользовательского типа между VB6 и .net
Я создаю вызываемую COM-сборку .net и теперь пытаюсь использовать ее из устаревших COM-клиентов (в моем случае клиент VB6).
Сборка должна предоставлять интерфейс в стиле API, поэтому типичное объявление функции будет выглядеть так:
int...
1009 просмотров
schedule
15.05.2022
Объявления интерфейса COM
При создании объявлений COM-интерфейса на С# существуют ли какие-либо «правила», которых вы должны придерживаться? Я думаю, что есть и хотел бы получить некоторую информацию о нем. Например, я играюсь с интерфейсами ITaskbarList, ITaskbarList2 и...
1253 просмотров
schedule
16.12.2022
Взаимодействие С#/С++ - нужна помощь в определении моей структуры данных
Я работаю над приложением С#, которое пытается использовать функциональные возможности, предоставляемые через DLL С++. Мне немного трудно заставить определения DLLImport работать прямо сейчас.
Вот сторона C++ уравнения:
struct Result
{...
1070 просмотров
schedule
30.03.2022
Маршаллинг строк, C++ в C#: «преобразование не поддерживается библиотекой»
Резюме:
При попытке использовать сортировку для передачи строковых данных в C++ DLL из C# я получаю
'msclr::interop::error_reporting_helper‹_To_Type,_From_Type>::marshal_as': это преобразование не поддерживается библиотекой или файл...
1938 просмотров
schedule
24.08.2022
Маршалинговая структура со встроенным указателем из C# в неуправляемый драйвер
Я пытаюсь связать С# (.NET Compact Framework 3.5) с потоковым драйвером Windows CE 6 R2, используя вызовы P/Invoked DeviceIoControl(). Для одного из кодов IOCTL драйверу требуется входной буфер DeviceIoControl, представляющий собой следующую...
5834 просмотров
schedule
27.07.2023
Как я могу игнорировать поле при маршаллинге структуры с помощью P/Invoke
Я хочу маршалировать структуру для использования с P/Invoke, но эта структура содержит поле, относящееся только к моему управляемому коду, поэтому я не хочу, чтобы оно маршализировалось, поскольку оно не принадлежит собственной структуре. Это вообще...
5759 просмотров
schedule
01.09.2022
Как я могу предотвратить утечку памяти в CompileAssemblyFromSource?
У меня есть код C#, который использует CSharpCodeProvider.CompileAssemblyFromSource для создания сборки в памяти. После сборки мусора мое приложение использует больше памяти, чем до создания сборки. Мой код находится в веб-приложении ASP.NET, но я...
13899 просмотров
schedule
20.08.2022
Расположение типа значения .NET в памяти
У меня есть следующие типы значений .NET:
[StructLayout(LayoutKind.Sequential)]
public struct Date
{
public UInt16 V;
}
[StructLayout(LayoutKind.Sequential)]
public struct StringPair
{
public String A;
public String B;
public...
3628 просмотров
schedule
04.01.2023
данные маршала слишком короткие
Моему приложению требуется поддерживать большие объекты данных в сеансе. Существует около 3-4 объектов данных, каждый из которых создается путем анализа CSV-файла, содержащего 150 X 20 ячеек, содержащих строки из 3-4 символов. Мое приложение...
16611 просмотров
schedule
08.06.2022
Указание кодовой страницы для сортировки строк PInvoke с использованием C#
Я вызываю DLL с помощью PInvoke. Функция DLL возвращает строку C в кодовой странице 437.
Есть ли способ, чтобы маршалинг .Net преобразовывал строку в юникод, или может кто-нибудь предложить, какие параметры я должен указать для DllImport() и...
1926 просмотров
schedule
22.10.2022
Растровое изображение в int[] с использованием Marshal.Copy()
Я использую Marshal.Copy() для копирования информации о пикселях из массива Bitmap в массив int[] , проблема заключается в том, что информация, поступающая в этот массив, поступает неправильно, например:
[0] = -8682109;...
4176 просмотров
schedule
11.04.2022
Управляемая и неуправляемая структуры имеют разный размер
Я работаю с неуправляемой библиотекой через P/Invoke, и она использует три структуры (хотя все они имеют одинаковый базовый макет, поэтому я опубликую только одну):
struct Agraph_t {
int tag:4;
int kind:4;
int handle:24;
char...
1086 просмотров
schedule
23.07.2023