【问题标题】:Link imports by name (C++/Visual Studio)按名称链接导入 (C++/Visual Studio)
【发布时间】:2011-07-21 15:02:50
【问题描述】:

我有几个 NT 导入我想在我的程序中使用,问题是我无法使用它们,而无需经历下载和设置 WDK 以仅使用两个功能的漫长过程。我也不想使用 GetModuleHandle 和 GetProcAddress。

我知道在 VB6 中,您可以像这样从 dll 手动定义导入的函数:

Private Declare Function NtFunction Lib "ntdll.dll" (function arguments) As type

在没有所有头文件/库的情况下,我可以在 Visual Studio 中使用 C++ 做类似的事情吗?

【问题讨论】:

    标签: c++ visual-studio winapi dll


    【解决方案1】:

    你说你不想使用GetProcAddress,但这正是VB6 Declare Function(和.NET p/invoke)所做的。

    你确实需要一个完整的原型,通常你可以从文档中重新创建足够多的头文件。

    导入库有点困难,但有一些工具可以从 .DLL 创建导入库。

    如果您创建 .DEF 文件,则可以使用 Visual C++ 附带的LIB.EXE 工具(也可作为 Windows SDK 的一部分免费下载),请参阅Building an Import Library

    这里有一些more information

    mingw 附带了一个用于自动创建 .DEF 文件的工具:http://www.mingw.org/wiki/CreateImportLibraries(它创建的导入库仅适用于 gcc,但 .DEF 文件对于制作如上所述的 VC++ 导入库很有用) .

    这是另一个可能有帮助的工具:http://www.codeproject.com/KB/tips/ImpDef.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 2019-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多