win7 + vs2008 下通过:
#include <commdlgh>
#include <shlobjh>
///
//获取文件路径对话框 (树目录,可以同时打开文件夹和文件)
//回调函数BrowseCallbackProc用于指定初始化目录为szDir
///
static
INT CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) // lParam member of the BROWSEINFO structure used in the call to SHBrowseForFolder
{
switch(uMsg)
{
case BFFM_INITIALIZED:
{
// WParam is TRUE since you are passing a path
// It would be FALSE if you were passing a pidl
// TCHAR szDir[MAX_PATH]={0};
// GetCurrentDirectory(sizeof(szDir)/sizeof(TCHAR), szDir);
// SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)"D:\\Qt\\Qt521_mingw48");
}
break;
case BFFM_SELCHANGED:
{
}
break;
}
return 0;
}
static
BOOL GetFilePath(TCHAR FilePath,
HWND hParentWnd,
TCHAR InstructionString=NULL, //提醒语句
UINT ulFlags=BIF_USENEWUI //BIF_USENEWUI拥有新特性,有新建文件夹按钮,可以调整大小,一般加上
|BIF_RETURNFSANCESTORS //Only return file system ancestors
|BIF_RETURNONLYFSDIRS //Only return file system directories
|BIF_BROWSEINCLUDEFILES//The browse dialog will display files as well as folders
)
{
BROWSEINFO bInfo={0};
bInfohwndOwner=hParentWnd;
bInfopszDisplayName=FilePath;
bInfolpszTitle=InstructionString;
bInfoulFlags= ulFlags;
bInfolpfn=BrowseCallbackProc; // bInfolpfn=NULL;
bInfolParam=0; // BrowseCallbackProc lpData
LPITEMIDLIST pidl= ::SHBrowseForFolder(&bInfo);
if (pidl == NULL)
return false;
if (::SHGetPathFromIDList(pidl,FilePath) == FALSE)
return false;
return true; //default return
}
//调用测试:
TCHAR FilePath[MAX_PATH]="D:\\Qt\\Qt521_mingw48";
if( GetFilePath(FilePath,hWnd,"请选择一个文件") )
{
::MessageBox(::GetFocus(),FilePath,"标题",MB_OK);
}
"无法定位输入点LdrsetSessionName于
动态链接库mfc40udll上"修复方法说明:系统无法正常登陆,在启动时系统程序“lsassexe”会d出错误提示:“无法定位程序输入点
LdrsetSessionName 于动态链接库mfc40udll上。”或“没有找到
mfc40udll组件,重新安装应用程序可能会修复此问题。”等信息的修复方法。介绍:系统程序“lsassexe"
d出错误“无法定位程序输入点
LdrsetSessionName 于动态链接库
mfc40udll上。”这个提示是由于系统达门走小庄国了水
被病毒破坏而产生的。是系统程序
“lsassexe”进程启动时d出来的错误提示信息,真正的系统程序
“lsassexe”进程中是不会有这种提示信息的。之所以会d出该提示,是因为病毒修改了统“lsassexe”程序的输入表(在输入表的尾部多加了一条调用信息 “LdrsetSessionName"、
“mfc40udll”),同时病毒又使用自身释放出来的恶意DLL组件覆盖了系统本身的DLL组件“mfc40udll”(系统内原本就有这个DLL组件的)。当杀毒软件或安全软件发现了被病毒程序破坏的系统DLL组件“mfc40udll”(系统原DLL组件的功能是MFC的部分函数库,被病毒覆盖后的DLL组件的功能是木马下载器)后,就给强行删除掉了,但没有去修复系统程序“lsassexe”文件的输入表,也没有还原被病毒破坏的系统DLL组件
“mfc40udll”文件,所以出现了上边的错误提示信息。
病毒是利用磁盘过滤驱动去读写真实磁盘中的数据,然后去破坏系统“lsassexe”和
“mfc40udll”文件的。所以,不管系统“lsassexe”和“mfc40udll”程序有没有在运行,都会被病毒破坏掉。该病毒使用了类似于“古老的机器狗病毒穿系统还原的设计原理”,并没有去破坏您系统的注册表中的数据信息。所以在网络上见很多人提出使用“重新注册系统‘mfc40udll'DLL组件的方法是不对的”,可能会对系统造成更大的破坏。要对症下药,不然很可能会越医越病!!信息:“C:\”=“这里的C盘为系统盘”“lsassexe” =
"C:\WINDOWS\system32\lsassexe”
"mfc40udll”=
"C:\WINDOWS\system32\mfc40ull
”上述二个文件一般都可以在系统
"C:\WINDOWS\system32\dllcache”目录下找到正常完好的系统备份文件。
修复方法步骤(经过实际测试绝对有效):
一、系统可以启动登陆的修复方法:
1:把系统程序“lsassexe”文件和系统DLL组件程序“mfc40udll”文件同时改名,Windows系统是支持运行着的程序改名的。(如果您能终止掉系统程序
“lsassexe”和DLL组件 “mfc40udll”的运行也可以)。
2:复制一个正常的系统程序“lsassexe”文件保存为
"C:\WINDOWS\system32\lsassexe”
文件。
3:复制一个正常的系统DLL组件程序“mfc40udll”文件保存为
"C:\WINDOWS\system32\mfc40udll”文件。
4:按照上边的1-3步骤 *** 作完毕后,重新启动一次计算机,一切修复完毕。
5:系统修复完毕后,要使用杀毒软件去查杀病毒。因为该病毒为木马下载器,它可能已经在您的计算机系统中安装了其它恶意程序(20款以上)。二、系统无法启动登陆的修复方法:(转载请注明出自Coderui的博客,谢谢)1:使用PE盘或DOS盘启动系统(这种情况下,安全模式是无法登陆的)。2:复制一个正常的系统程序“lsassexe”文件保存为
"C:\WINDOWS\system32\lsassexe"
文件。3:复制一个正常的系统DLL组件程序“mfc40udll”文件保存为
"C:\WINDOWS\system32\mfc40udll”文件。4:按照上边的1-3步骤 *** 作完毕后,重新启动一次计算机,一切修复完毕。5:系统修复完毕后,要使用杀毒软件去查杀病毒。因为该病毒为木马下载器,它可能已经在您的计算机系统中安装了其它恶意程序(20款以上)。注意:
上述三个文件一般都可以在系统
"C:\WINDOWS\system32\dllcache”目录下找到正常完好的系统备份文件。
如果实在没有找到的话,可以去同一个版本的其它计算机系统中拷贝。最好是断开网络修复系统,因为该病毒为木马下载器,它会连接网络向您的计算机中安装20多款其它恶意程序(如网络游戏盗号木马等)。因为该病毒并没有去破坏或修改您系统中的注册表,请您不要去重新注册系统DLL组件“mfc40udll”,不然可能会带去不必要的麻烦。
以上就是关于求一个VC6.0 mfc中树形控件获取磁盘文件目录的例子全部的内容,包括:求一个VC6.0 mfc中树形控件获取磁盘文件目录的例子、三菱软件安装时mfc40.dll、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)