开发者

Link imports by name (C++/Visual Studio)

开发者 https://www.devze.com 2023-03-22 04:27 出处:网络
I have a few NT impor开发者_JS百科ts I want to use in my program, problem is I am unable to use them without going though the lengthly process of downloading and setting up the WDK to use just two fun

I have a few NT impor开发者_JS百科ts I want to use in my program, problem is I am unable to use them without going though the lengthly process of downloading and setting up the WDK to use just two functions. I would also prefer not to use GetModuleHandle and GetProcAddress.

I know in VB6 you can manually define imported functions from dlls like this:

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

Is there something similar I can do with C++ in Visual Studio without having all the headers/libs?


You say you don't want to use GetProcAddress, but that's exactly what VB6 Declare Function (and .NET p/invoke) does.

You do need a complete prototype, often you can recreate enough of the header file from documentation.

The import library is a little more difficult, but there are tools to create import libraries from the .DLL.

If you create a .DEF file, you can use the LIB.EXE tool that comes with Visual C++ (and also available as a free download as part of the Windows SDK), see Building an Import Library

Here is some more information.

mingw comes with a tool for mostly automating creation of the .DEF file: http://www.mingw.org/wiki/CreateImportLibraries (the import library it creates is only usable with gcc, but the .DEF file is useful for making a VC++ import library as described above).

Here's a another tool that might help: http://www.codeproject.com/KB/tips/ImpDef.aspx

0

精彩评论

暂无评论...
验证码 换一张
取 消