|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.10.2012, 13:32 | #1 |
Регистрация: 28.08.2009
Сообщений: 3
|
void* в C#
Добрый день
Есть DLL, которая предоставляет функцию с такой сигнатурой int Control (int Num, int Cmd_Number, void *pIn) В зависимости от номера Cmd_Number, через переменную pIn передается в DLL или из DLL некий указатель на буфер данных различной структуры и длины. Есть необходимость наладить связь с этой DLL из C#. При попытке объявить сигнатуру функции Control компилятор выдает ошибку . Ему не нравится такая запись => void *pIn Подскажите пожалуйста как можно обойти эту проблему. Изменить DLL не представляется возможным |
25.10.2012, 22:31 | #2 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 525
|
Код:
|
26.10.2012, 20:40 | #3 |
Регистрация: 28.08.2009
Сообщений: 3
|
Спасибо. Буду пробовать
|
27.10.2012, 04:43 | #4 |
Пользователь
Регистрация: 20.10.2012
Сообщений: 11
|
IntPtr правильно посоветовали, это прямой аналог void* в C#.
Но можно сделать еще лучше - объявить несколько разных вариантов этой функции принимающей на вход разные виды структур по ссылке (ref). Тогда можно не париться ручной конвертацией, C# сам будет вызывать нужную версию функции и формировать unmanaged представление данных. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
void TrimRight( char *s ) | Den-is | C# (си шарп) | 5 | 09.02.2012 20:46 |
что делает void | doctorvra4 | Помощь студентам | 9 | 28.11.2011 18:32 |
void to struct (C++) | slim>>> | Помощь студентам | 1 | 13.01.2011 20:52 |
Return(void) | tools | Visual C++ | 5 | 22.12.2010 12:19 |
Загадка void`а | Voipp | Общие вопросы C/C++ | 4 | 08.09.2009 17:29 |