C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C++ 获取dll所有文件

C++ 获取dll当前路径下所有文件

作者:^@^lemon tea^@^

本文主要介绍了C++ 获取dll当前路径下所有文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在.cpp文件头引用头文件和作用域

using namespace std;
#include <atlbase.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <string>
#include <fstream>
#include<vector>
#include<io.h>
#include <direct.h>
#include <iostream>
#include <map>

获取dll文件所在目录地址和获取文件信息

char filePath[MAX_PATH];
GetModuleFileNameA(_AtlBaseModule.GetModuleInstance(), filePath, MAX_PATH);
std::string strDllPath(filePath);
strDllPath = strDllPath.substr(0, strDllPath.find_last_of("\\") + 1);
vector<string> files;
getFilesAll(strDllPath, files);
bool m_VerifyBytes[20] = { false };

功能代码:获取指定路径下所有文件地址信息

void getFilesAll(string path, vector<string>& files)
{
    //文件句柄
    long hFile = 0;
    //文件信息
    struct _finddata_t fileinfo;
    string p;
    if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1)
    {
        do
        {
            if ((fileinfo.attrib & _A_SUBDIR))
            {
                if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
                {
                    getFilesAll(p.assign(path).append(fileinfo.name), files);
                }
            }
            else
            {
                files.push_back(p.assign(path).append(fileinfo.name));
            }
        } while (_findnext(hFile, &fileinfo) == 0);
        _findclose(hFile);
    }
}

到此这篇关于C++ 获取dll当前路径下所有文件的文章就介绍到这了,更多相关C++ 获取dll所有文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文