Visual Studio 2017依赖.dll未找到

时间:2017-07-24 15:08:04

标签: windows visual-studio visual-c++ dll visual-studio-2017

我正在使用我希望在项目中使用的外部API开发语音识别儿童游戏。所述API具有lib文件,dll文件,头文件和cpp文件。到目前为止,我已经成功地将库文件(至少我认为我已经添加)添加到我的项目目录中,将所有必需的头文件添加到外部依赖项中,然后我将两个.dll文件添加到我的项目中。首先,我添加我的Audio.dll文件,它完全添加没有问题。其次,我添加了我的Speech.dll,这是我的问题出现的地方。我没有收到调试错误列表中的任何错误,但是,我的项目输出如下所示:

'Project.exe' (Win32): Loaded 'C:\Path\Project.exe'. Symbols loaded.
'Project.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Cannot find or open the PDB file.
'Project.exe' (Win32): Loaded 'C:\Windows\System32\mscoree.dll'. Cannot find or open the PDB file.
'Project.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Cannot find or open the PDB file.
'Project.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Cannot find or open the PDB file.
'Project.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbased.dll'. Cannot find or open the PDB file.
'Project.exe' (Win32): Loaded 'C:\Windows\System32\vcruntime140d.dll'. Cannot find or open the PDB file.
The thread 0x3274 has exited with code -1073741515 (0xc0000135).
The thread 0x198c has exited with code -1073741515 (0xc0000135).
The program '[17020] Project.exe' has exited with code -1073741515 (0xc0000135) 'A dependent dll was not found'.

在此之后我得到一个弹出系统错误:代码执行无法继续,因为找不到Speech.dll。重新安装程序可能会解决此问题。

没有提及Audio.dll,但是找不到与Audio.dll在同一文件夹中的Speech.dll。我尝试重新安装.dll,我尝试重新安装Visual Studio 2017,我尝试了Add-> Existing Item-> .dll,我尝试将dll添加到.exe所在的项目路径中,并且我尝试添加它到每个文件夹/子文件夹都接收与我的输出相同的序列。

我的问题是,如何让我的Visual Studio 2017项目识别我的Speech.dll文件?

2 个答案:

答案 0 :(得分:0)

请确保speech.dll与project.exe所在的文件夹中存在。 Windows按以下顺序搜索dll: 您的应用程序的文件夹 windows \ system32等 请确保dll存在于任何这些文件夹中,否则您将丢失错误dll。 注意:如果您正在调试,请确保已将正确调试的工作目录设置为指向包含project.exe和dll的文件夹。

答案 1 :(得分:0)

在Visual Studio 2019中(我不知道这是否适用于早期版本),您可以在构建过程的一部分中复制DLL。基本上,您需要在项目中添加构建后事件。生成后事件会将DLL复制到您的生成输出目录。

有关指定构建事件的信息,请参见:

https://docs.microsoft.com/en-us/cpp/build/specifying-build-events?view=msvc-160

用于构建后事件的命令为:

xcopy /y /d "<relative path or absolute path to dll location>/youlib.dll" "$(outdir)"