4

私はC ++に非常に慣れていません。私の現在のプロジェクトには、すでに含まれています

#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>

main() の最初の部分で簡単なチェックを行って、プログラムのディレクトリに必要な dll が存在するかどうかを確認するだけです。それで、私がそれを行うための最良の方法は何でしょうか?

4

2 に答える 2

9

したがって、正しい名前のファイルが同じディレクトリに存在することを確認するだけで問題ないと仮定します。

#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);
}
于 2013-06-08T23:56:18.190 に答える
6

それを実現する方法はたくさんありますが、boost ライブラリを使用することは常に良い方法です。

#include <boost/filesystem.hpp>
using boost::filesystem;

if (!exists("lib.dll")) {
    std::cout << "dll does not exists." << std::endl;
}
于 2013-06-09T01:12:56.253 に答える