为什么我必须把我的动态链接库放在这里?

时间:2015-09-04 22:53:58

标签: c++ dll

我正在使用msvc ++创建一个win32控制台应用程序,它将使用一个非常简单的dll。我将我的.lib和标题放入我的dll(我的dll只有一个标题)到我的控制台应用程序文件夹中。

当我运行它时,我没有得到任何编译或链接错误,但是当应用程序实际打开时,它说它无法找到dll。当我将.dll文件放入控制台应用程序的文件夹并运行时,它确实有效。我想知道为什么会发生这种情况??????

1 个答案:

答案 0 :(得分:0)

请看这个链接:

Dynamic-Link Library Search Order

Windows有一个DLL搜索顺序。您可以通过上述链接中指定的功能进行更改。

您的导入库用于定义DLL中的函数等信息。您可以使用LoadLibrary("myDLL.dll")函数加载没有标题的DLL。

在这种情况下,您必须使用GetProcAddress(module, "function_name")函数来获取DLL中的函数地址。

GetProcAddress function

以下是GetProcAddress()的一些解决方案的链接:

Calling functions in a DLL from C++