如何从devcon.exe源代码中创建DLL?

时间:2014-12-12 19:39:03

标签: c++ vb.net dllexport

我正在使用devcon.exe的启用和禁用设备功能的程序。它运作良好,但我不认为我可以合法地将devcon.exe的副本与程序打包在一起。我有这个程序的来源,它在C ++或C#中不确定我没有经验和C的类型。保持不知道C的事情;如何使用启用和禁用设备功能从devcon.exe代码中创建DLL?此DLL也用于vb.net程序,如果这有任何区别。 (如果我需要将整个exe放入DLL中,那么我只是认为只有两个函数才能使它更容易制作。)

devcon.exe下载here

devcon.exe源码下载here

1 个答案:

答案 0 :(得分:2)

devon.exe使用cfgmgr32.dll和setupapi.dll来完成实际工作 - 而不是将devcon.exe转换为dll - 而是使用它使用的dll。

要从32位vb.net程序调用,您需要使用pinvoke,一种IJW(它正常工作)技术,它是.NET的一部分,用于处理从.NET调用Win32 dll的方法。声明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

SetupDiEnumDeviceInfo的pinvoke.net条目也有一个如何调用它的示例。

您必须学习setupapi,但我认为这比将devcon.exe转换为DLL更容易,这仍然需要pinvoke来调用。