| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Передача параметров в DLL-метод |
| Автор: teRmit 26.6.2006, 10:13 |
| Имеется: В С++ варианте: 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) ? |
| Автор: mr.DUDA 26.6.2006, 10:58 |
| Вместо сишных указателей и ссылок передаются объекты/структуры "как есть". P/Invoke потом сам разбирается, откуда взять указатель. Так что, последним аргументом ControlService можно передать структуру SERVICE_STATUS. Добавлено @ 10:59 P.S. http://www.pinvoke.net/default.aspx/advapi32/ControlService.html |
| Автор: teRmit 26.6.2006, 11:17 |
| Спасибо! Помогло. |