2014-12-12 3 views
-3

Я работаю над программой, которая использует функцию enable и disable devices от devcon.exe. Он работает хорошо, но я не думаю, что могу законно упаковать копию devcon.exe с программой. У меня есть источник программы, он находится на C++ или C#, но я не уверен, что у меня нет опыта и что-то типа C. Сохраняя это, не помните C. как я могу сделать DLL из кода devcon.exe только с включенными и отключенными функциями устройства? Также эта DLL предназначена для использования в программе vb.net, если это имеет значение. (Если мне нужно поставить весь ехе в DLL, то отлично, я просто подумал, что только имея две функции в нем будет легче сделать.)Как сделать DLL из исходного кода devcon.exe?

devcon.exe скачать here

devcon.exe source загрузить here

ответ

1

devon.exe использует cfgmgr32.dll и setupapi.dll, чтобы выполнить фактическую работу - вместо того, чтобы превращать devcon.exe в dll - используйте DLL, которые он использует вместо этого.

Чтобы позвонить из 32-разрядной программы vb.net, вам необходимо использовать pinvoke, технологию IJW (она просто работает), которая является частью .NET, которая обрабатывает DLL-файлы Win32 с .NET путем объявления импорта DLL.

Большую часть времени вы можете посмотреть на http://pinvoke.net для правильного объявления. Так, например, SetupDiEnumDeviceInfo может быть объявлен как:

Private Declare Auto Function SetupDiEnumDeviceInfo Lib "setupapi.dll" (_ 
    ByVal DeviceInfoSet As Integer, _ 
    ByVal MemberIndex As Integer, _ 
    ByRef DeviceInfoData As SP_DEVINFO_DATA) As Boolean 

Запись pinvoke.net для SetupDiEnumDeviceInfo также пример того, как назвать его.

Вам нужно будет изучить setupapi, но я думаю, что это будет намного проще, чем превратить devcon.exe в DLL, что все равно потребует pinvoke для вызова.

+0

Это потрясающе, я понятия не имел, что эти DLL существуют. Огромное спасибо! : D – Umdoobby

Смежные вопросы