求一个VC6.0 mfc中树形控件获取磁盘文件目录的例子

求一个VC6.0 mfc中树形控件获取磁盘文件目录的例子,第1张

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、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9795738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存