4

是否可以使用 C 加载 DLL 并使用其功能?

我是 C 新手,我正在尝试在互联网上搜索一些好的参考资料;但我找不到。

任何帮助,将不胜感激!

我在 Windows 7、64 位的 Code::Blocks 中使用 GNU GCC。

4

3 回答 3

8

HMODULE hModule = LoadLibrary(<dll file name>)接下来GetProcAddress(hModule, <function name>)将使用 WinAPI 完成这项工作。

可以在这里找到一个例子。

于 2012-10-23T16:08:13.160 回答
1

我认为您应该调查该LoadLibrary功能。

http://msdn.microsoft.com/en-us/library/ms684175.aspx

将指定的模块加载到调用进程的地址空间中。指定的模块可能会导致加载其他模块。

于 2012-10-23T16:10:34.090 回答
-2

使用 MinGW 构建 DLL,这里有一些说明:

首先,您需要将函数标记为导出,以便 DLL 的调用者可以使用它们。为此,请修改它们,使它们看起来像(例如)

__declspec( dllexport ) int add2(int num){
   return num + 2;
}

然后,假设您的函数位于名为 funcs.c 的文件中,您可以编译它们:

gcc -shared -o mylib.dll funcs.c -shared 标志告诉 gcc 创建一个 DLL。

对于一个免费的 IDE,它将自动化构建 DLL 所需的所有标志等,看看优秀的 Code::Blocks,它与 MinGW 配合得很好。

此外,请参阅 MinGW Wiki 上的文章创建用于 Visual Basic 的 MinGW DLL。

于 2012-10-23T16:17:28.610 回答