要注意的是你要copy文件到C盘(系统盘),要以管理员权限运行该程序,否则copy到系统盘会失败的
TCHAR SourceFileName[MAX_PATH]={0} , TargetFileNmae[MAX_PATH]={0}GetDlgItemText(IDC_EDIT_S,SourceFileName,-1)
GetDlgItemText(IDC_EDIT_T,TargetFileNmae,-1)
if(!CopyFile(SourceFileName,TargetFileNmae,FALSE))//若目标文件存在,对其覆盖
{
AfxMessageBox("文件复制失败,请检测文件路径是否正确!")
return
}
AfxMessageBox("文件复制成功!")
再次重声,文件 *** 作属于内核对象 *** 作。。所以设计到安全问题,即UAC,所以你要想对c盘文件 *** 作,必须要管理员权限 *** 作
听你这么说。我假定你已经学习了c++ 和 win32 (至少看过win32 的 hello word 示例程序)
一个简单程序简化为 如下:
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
....
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
创建注册窗口
MSG msg
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg)
DispatchMessage(&msg)
}
return msg.wParam
}
工程名.cpp 工程名.h 是一个 CWinApp 的派生类 。这2个文件执行的就是以下这些代码 :
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MSG msg
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg)
DispatchMessage(&msg)
}
return msg.wParam
}
工程名Dlg.cpp 工程名Dlg.h 这2个文件创建一个窗口 。执行的代码是:
窗口函数
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
....
}
创建注册窗口
这只是粗略说说,至于细说,一言难尽。哎!太复杂了。我学习了很久才懂个大概。mfc真是难于理解。
下面我再贴一个mfc的简单例子。相比对话框例子。我觉得这能更好的理解mfc 。
//下面这个程序是在Win32工程里模拟MFC程序初始化并创建窗口的简单过程(当然,它只是模拟,意在理解MFC创建程序机制,其中是有漏洞的)
//1.创建一个Win32 Application工程-->新建一个C++ Source File-->复制并粘贴代码
//2.Alt+F7调出设置对话框-->在Microsoft基础类-->选择"使用MFC作为静态链接库"
//3.运行
#include"afxwin.h"
//窗口基类,用来最为程序的主窗口,当然也可继承于CFrameWnd类
class CMyWnd:public CWnd
{
public:
CMyWnd() //窗口类的构造函数
{
CreateEx(NULL,AfxRegisterWndClass(NULL),"MyWindow",WS_VISIBLE|WS_OVERLAPPEDWINDOW,100,100,200,200,NULL,NULL,NULL)
}
}
//继承一个CWinApp类,用于构建程序实例
class CMyApp:public CWinApp
{
public:
BOOL InitInstance() //InitInstance()是虚函数,我们需要重载它并在里面添加我们初始化代码(如创建主窗口)
{
//m_pMainWnd是CWinThread里的一个数据成员,用来创建主窗口(选中"m_pMainWnd"->右键->转到"m_pMainWnd"的定义)
m_pMainWnd=new CMyWnd()
// m_pMainWnd->ShowWindow(m_nCmdShow) //CreateEx里有WS_VISIBLE,所以可以省略显示窗口函数
//你的代码
return true
}
}
//创建一个程序实例
CMyApp TheApp
//运行的顺序是:
//1 创建TheApp对象
//2 TheApp调用成员函数InitInstance()
//3 在InitInstance()里用成员变量m_pMainWnd创建窗口类(m_pMainWnd=new CMyWnd())
//4 m_pMainWnd调用构造函数CMyWnd()
//5 在CMyWnd()调用成员函数创建窗口
//你可以在你创建的单文档和对话框程序里面看见这些代码的踪影,用调试的方法加以追踪,加深理解
现象是用 debug中的 step info或者run to cursor合着设置断点会出现One or more breakpoints cannot be set and have been disabled. Execution will stop at the beginning of the program.解决方法,1.在project->setting->c/c++-general->debug info->program databse for edit and continue
2.edit->breakpoints->removeall
3.build->set active project configuration->*.exe win32 debug.
经过以上三步,ok!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)