如何从 devcon .exe源代码中制作 DLL
How do I make a DLL out of the devcon.exe source code?
我正在开发一个使用 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来调用。
相关文章:
- 挂起和取消挂起一个文件DLL
- 在Linux中哪里可以找到互斥、未来等的源代码
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 使用dll源代码C++调试dll文件
- 如何在不可修改的源代码中使用 DLL 函数?
- 如何在 c++ 生成器 6 中从应用程序源代码创建 dll
- C++ ATIOGLXX.pdb 包含查找模块 ATIOGLXX.dll 源代码所需的调试信息
- 如何从 devcon .exe源代码中制作 DLL
- 使用dumpbin查看.dll或.lib文件中的源代码
- 在我没有源代码但可以加载 DLL 的程序中导致竞争条件?
- 我有一个.dll,我想用源代码编辑.我需要编辑哪些文件
- 编译c++源代码为.dll文件
- 调试一个调试的c++ COM dll与pdb,但没有源代码
- 如何打开在c++中创建的DLL文件来查看类、方法和源代码
- 从Java调用DLL,编辑DLL源代码