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

C++ 为什么我必须把我的动态链接库放在这里?,c++,dll,C++,Dll,我正在使用msvc++制作一个win32控制台应用程序,它将使用一个非常简单的dll。我将我的.lib和dll的头(我的dll只有一个头)放入控制台应用程序文件夹 当我运行它时,我没有得到任何编译或链接错误,但当应用程序实际打开时,它说它找不到dll。当我将.dll文件放入控制台应用程序的文件夹并运行时,它实际上可以工作。我想知道为什么会发生这种情况 看看这个链接: Windows具有DLL搜索顺序。您可以通过上面链接中指定的函数进行更改 导入库用于定义有关DLL中函数的信息等。您可以使用Lo

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

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

看看这个链接:

Windows具有DLL搜索顺序。您可以通过上面链接中指定的函数进行更改

导入库用于定义有关DLL中函数的信息等。您可以使用
LoadLibrary(“myDLL.dll”)
函数来加载不带标头的dll

在这种情况下,必须使用
GetProcAddress(模块,“函数名”)
function来获取DLL中的函数地址

这是一个链接,其中提供了一些有关
GetProcAddress()
的解决方案:


好的,当然可以。MSVC++解决方案允许您创建多个项目。所有可执行文件最终都位于同一位置,默认情况下为解决方案的调试目录。如果您不使用该功能,则必须自己复制文件。使用该功能。问题是DLL搜索顺序。你剩下的答案与刘兹问的问题无关
LoadLibrary()
/
GetProcAddress()
不是这个问题的答案,但是如果您想从DLL搜索顺序中不包含的位置加载DLL,这是一个替代解决方案(尽管您可以使用
SetDllDirectory()
AddDllDirectory()
来解决这个问题)。