如何从 devcon .exe源代码中制作 DLL

How do I make a DLL out of the devcon.exe source code?

本文关键字:DLL 源代码 exe devcon      更新时间:2023-10-16

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

开发.exe在此处下载

Devcon.exe源代码下载在这里

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

若要从 32 位 vb.net 程序调用,需要使用 pinvoke,这是一种 IJW(它只是工作)技术,它是 .NET 的一部分,通过声明 DLL 导入来处理从 .NET 调用 Win32 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要容易得多,DLL仍然需要pinvoke来调用。