我对C ++非常陌生。 在我目前的项目中,我已经包含了
#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>
我只需要在main()的最开头快速检查一下,看看我的程序目录中是否存在必需的dll。 那么对我来说最好的方法是什么呢?
答案 0 :(得分:9)
因此,假设只需在同一目录中检查具有正确名称EXISTS的文件即可:
#include <fstream>
...
void check_if_dll_exists()
{
std::ifstream dllfile(".\\myname.dll", std::ios::binary);
if (!dllfile)
{
... DLL doesn't exist...
}
}
如果您想知道它实际上是一个真正的DLL(而不是某人打开命令提示符并执行type NUL: > myname.dll
来创建一个空文件),您可以使用:
HMODULE dll = LoadLibrary(".\\myname.dll");
if (!dll)
{
... dll doesn't exist or isn't a real dll....
}
else
{
FreeLibrary(dll);
}
答案 1 :(得分:6)
有很多方法可以实现这一点,但使用boost库总是一个好方法。
#include <boost/filesystem.hpp>
using boost::filesystem;
if (!exists("lib.dll")) {
std::cout << "dll does not exists." << std::endl;
}