Exemplo n.º 1
0
BOOL PathHelper::GetAllFile(
    const std::wstring & strDir,
    CStdStringVector &vecFile,
    const std::wstring &strDirMask,
    const std::wstring &strFileMask
)
{
    BOOL bResult = FALSE;
    vecFile.clear();

    CStdStringVector vecSubDir;

    ///获取所有子目录
    bResult = GetAllSubDir(strDir, vecSubDir, strDirMask);

    ///将目录自己也压入进去以查找文件
    vecSubDir.push_back(strDir);

    if (vecSubDir.size() > 0)
    {
        CStdStringVector::iterator iter = vecSubDir.begin();
        while (iter != vecSubDir.end())
        {
            CStdStringVector vecTmpFile;
            GetDirFile(*iter, vecTmpFile, strFileMask);

            vecFile.insert(vecFile.end(), vecTmpFile.begin(), vecTmpFile.end());

            iter ++;
        }
    }

    bResult = (vecFile.size() > 0) ;
    return bResult;
}
Exemplo n.º 2
0
/// <summary>
/// DLLs the main.
/// </summary>
/// <param name="hinstDLL">The hinst DLL.</param>
/// <param name="fdwReason">The FDW reason.</param>
/// <param name="lpvReserved">The LPV reserved.</param>
/// <returns></returns>
BOOL WINAPI DllMain(
	_In_ HINSTANCE hinstDLL,
	_In_ DWORD     fdwReason,
	_In_ LPVOID    lpvReserved
	)
{
	
	if (fdwReason == DLL_PROCESS_ATTACH)
	{
		if (GetModuleFileNameA(hinstDLL, g_szBaseDir, sizeof(g_szBaseDir)))
		{
			for (int i = (int)strlen(g_szBaseDir); i > 0; i--)
			{
				if (g_szBaseDir[i] == '\\')
				{
					g_szBaseDir[i + 1] = 0;

					break;
				}
			}
		}
		sprintf(g_szLogFile, "%sfbgen.txt", g_szBaseDir);

		std::ofstream fout;
		fout.open(g_szLogFile, std::ios::trunc);
		fout.close();

		char sdkPath[MAX_PATH];

		GetDirFile("SDK\\", sdkPath, sizeof(sdkPath));
		DWORD dwAttr = GetFileAttributes(sdkPath);
		if (dwAttr == INVALID_FILE_ATTRIBUTES)
			CreateDirectory(sdkPath, NULL);

#if 0
		// todo: sort into different directories?
		// you will have to resolve the include paths correctly though depending on what type they are
		GetDirFile("SDK\\classes\\", sdkPath, sizeof(sdkPath));
		dwAttr = GetFileAttributes(sdkPath);
		if (dwAttr == INVALID_FILE_ATTRIBUTES)
			CreateDirectory(sdkPath, NULL);

		GetDirFile("SDK\\enums\\", sdkPath, sizeof(sdkPath));
		dwAttr = GetFileAttributes(sdkPath);
		if (dwAttr == INVALID_FILE_ATTRIBUTES)
			CreateDirectory(sdkPath, NULL);
#endif

		ClassInfo* classInfo = ClassInfo::GetInstance();
		if (!classInfo)
			return FALSE;

		ClassInfoManager manager(classInfo);
		manager.BuildClassList();
		manager.DumpClasses();

		MessageBox(0, "success", 0, 0);
	}

	return 0;
}