Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача параметров в DLL-метод 
V
    Опции темы
teRmit
Дата 26.6.2006, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


забытый...
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.6.2004
Где: Санкт-Петербург

Репутация: 1
Всего: 9



Имеется:
В С++ варианте:
typedef struct _SERVICE_STATUS {
    DWORD   dwServiceType;
    DWORD   dwCurrentState;
    DWORD   dwControlsAccepted;
    DWORD   dwWin32ExitCode;
    DWORD   dwServiceSpecificExitCode;
    DWORD   dwCheckPoint;
    DWORD   dwWaitHint;
} SERVICE_STATUS;


Из С# необходимо вызвать метод:
[DllImport("Advapi32.dll", CharSet = CharSet.Auto)]
        static extern bool ControlService(IntPtr hService,
            ulong dwControl,
            IntPtr-?(SERVICE_STATUS-?) lpServiceStatus);




Так вот, как можно в C# осуществить передачу &status в DLL-метод:

SERVICE_STATUS status;
ControlService(hService, SERVICE_CONTROL_STOP, &status)
?  

Это сообщение отредактировал(а) teRmit - 26.6.2006, 10:18
--------------------
Жизнь не настолько длинна, чтобы можно было долго терпеть...
PM ICQ   Вверх
mr.DUDA
Дата 26.6.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Вместо сишных указателей и ссылок передаются объекты/структуры "как есть". P/Invoke потом сам разбирается, откуда взять указатель. Так что, последним аргументом ControlService можно передать структуру SERVICE_STATUS.

Добавлено @ 10:59 
P.S.
http://www.pinvoke.net/default.aspx/advapi...rolService.html 


--------------------
user posted image
PM MAIL WWW   Вверх
teRmit
Дата 26.6.2006, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


забытый...
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.6.2004
Где: Санкт-Петербург

Репутация: 1
Всего: 9



Спасибо! Помогло. smile 
--------------------
Жизнь не настолько длинна, чтобы можно было долго терпеть...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.