![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MFC
困了就喝白茶
街边太多人与车,繁华闹市人醉夜
展开
-
MFC打开控制台输入信息和关闭控制台
在OnInitDialog函数中加入 AllocConsole();//打开控制台 freopen("CON", "r", stdin); freopen("CON", "w", stdout); freopen("CON", "w", stderr);如果出现4996错误,在文件开头加入#pragma warning(disable:4996) 然后在类向导添加:然后在刚刚添加的函数,里面加上void CFirstDlg::OnDestroy(){ CDialogEx::OnD原创 2021-06-10 10:34:46 · 514 阅读 · 5 评论 -
根据进程的名称强制关闭该进程Windows的实现方式 MFC
我先给一个代码,你可以直接用,什么不用管了static void kill_process_by_name(char *name){ PROCESSENTRY32 pe32 = {0};//声明一个结构体,用来存放快照进程信息的一个结构体 HANDLE hsnap = NULL; pe32.dwSize = sizeof(pe32);//指定结构体的大小 hsnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCE原创 2021-06-01 17:59:41 · 989 阅读 · 2 评论 -
MFC中的SendMessage和PostMessage
SendMessage的函数声明声明:WINUSERAPIBOOLWINAPIPostMessageA( _In_opt_ HWND hWnd, _In_ UINT Msg, _In_ WPARAM wParam, _In_ LPARAM lParam);WINUSERAPIBOOLWINAPIPostMessageW( _In_opt_ HWND hWnd, _In_ UINT Msg, _In_ WPARAM wParam,原创 2021-05-30 17:01:37 · 481 阅读 · 0 评论 -
MFC中用UpdateData来刷新数据
updateData函数声明// 位于afxwin.h文件中 // Dialog Data support public: BOOL UpdateData(BOOL bSaveAndValidate = TRUE); // data wnd must be same type as this函数用途UpdateData() 是MFC的窗口函数,用来刷新数据的。总的来说:操作系统会调用这个函数来初始化对话框中的数据,原创 2021-05-30 16:50:19 · 2386 阅读 · 1 评论 -
咋们不是个成熟的程序员那不得学会打印日志和捕抓出错?
杂谈刚刚入行不久,想得太简单,出错了也知道哪里的问题,思维不够严密。加班熬夜少不了,写代码两小时,调试两整天。怀疑别人写的代码有问题,怀疑别人写的借口有问题,甚至于怀疑编译器。因为没有打印日志而选择弹框报错,报错信息不详尽,哪里出问题都不知道;没有catch错误,挨批了。我还以为catch C#才有的。如何打印日志在接口调用位置打日志在关键函数位置打日志在线程进程位置打日志在句柄位置打日志在关键信息的位置打日志在数据库调用的位置打日志在你怀疑的地方打日志 总之我们的程序运行情况也全都依原创 2021-04-18 17:33:18 · 137 阅读 · 2 评论 -
MFC中设置定时器SetTimer与OnTimer以及KillTimer
SetTimer函数作用:用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。函数原型:_AFXWIN_INLINE UINT_PTR CWnd::SetTimer(UINT_PTR nIDEvent, UINT nElapse, void (CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD))参数:参数nIDEvent指定一个非零的定时器ID。参数nElapse指定间隔时间,单位为毫秒。原创 2021-04-15 14:46:49 · 2232 阅读 · 1 评论 -
MFC中MultiByteToWideChar和WideCharToMultiByte
MultiByteToWideChar作用:可以映射一个字符串到一个宽字节(Unicode) 的字符串 .由该函数映射的字符串没必要是多字节字符组。函数原型:intWINAPIMultiByteToWideChar( _In_ UINT CodePage, _In_ DWORD dwFlags, _In_NLS_string_(cbMultiByte) LPCCH lpMultiByteStr, _In_ int cbMultiByte, _Out_wri原创 2021-04-14 19:37:42 · 527 阅读 · 0 评论 -
使用OutputDebugString输出调试信息
为什么要用它在编写控制台程序的时候我们经常会使用printf输出调试信息,使我们了解程序的状态,方便调试,但是当编写非控制台程序的时候这种方法就行不通了。OutputDebugString它是属于windows API的,所以只要是包含了window.h这个头文件后就可以使用了,很方便。他可以把调试信息输出到编译器的输出窗口。OutputDebugString函数原型:这个是源码下复制来的void WINAPI OutputDebugString( __in_opt LPCTSTR lpOutpu原创 2021-04-14 09:46:18 · 639 阅读 · 0 评论 -
线程同步与异步套接字编程
事件对象事件对象也属于内核对象,它包含以下三个成员:使用计数。用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值。 (为了实现线程间的同步,不应该使用人工重置事件对象,而应该使用自动重置对象。)指明该事件出于已通知状态还是未通知状态的布尔值。 事件对象有两种不同的类型:人工重置的事件对象和自动重置的事件对象。当人工重置的事件对象得到通知时,在等待该事件对象的所有线程均可变为可调度线程。当一个自动重置的事件对象得到通知时,在等待该事件对象的线程中只有一个线程变为可调度线程。创建事件原创 2021-04-13 18:23:02 · 260 阅读 · 0 评论 -
MFCbug之遇到不适当的参数或是Debug Assertion Failed
问题如图:以及为什么出现这样的问题:那肯定是你传入的参数有问题的啦,检查调用地方的参数,并且存放工程的文件夹不要有中文和空格。解决方法:因为我的问题是没加DoDateExchange,加上它们就没问题了。是我调试查看到一个控件的值为空,我就想起来没写DoDateExchange。...原创 2021-04-08 21:15:03 · 3116 阅读 · 1 评论 -
MFCbug之error LNK1104: 无法打开文件 ***.exe的错误
先来解决方法:把项目下的***.exe删掉,重新清理并生成解决方案遇到这个问题的可能情况1.杀毒软件查杀你的.exe文件2…exe文件路径不一致,并且文件路径尽量不要有中文和空格原创 2021-04-08 21:07:22 · 514 阅读 · 0 评论 -
MFCbug之调试的时候出现未加载mfc140.i386.pdb
bug:网上很多人教你这样做,我觉得这个方法可以先放一放造成问题的原因之一是:有时候调试帧进到系统动态库的时候经常会进不去的 因为是被封装成dll了。解决办法:可以跳过这一帧 或者改变断点的位置 避免F11进到dll逻辑里...原创 2021-04-07 18:00:52 · 3828 阅读 · 2 评论 -
MFCbug之在资源视图想打开窗口,在另一个编辑器中打开
bug:导致问题的原因:vs开了多个解决办法:把工程目录下的.vs隐藏文件夹删掉 重新打开vs原创 2021-04-07 17:56:00 · 132 阅读 · 0 评论 -
Win32中MFC中的CStdioFile类
CStdioFile类它是继承CFile类的class CStdioFile : public CFile,为什么需要一个CStdioFile类,封装来封装去不麻烦的吗,我一开始是这样想着的。我第一次看到这个类是在看公司前辈们的代码,他们写日志文件的都用这个类的,然后我去了解了一下它。CStdioFile类的作用CStdioFile继承了CFile,是CFile的子类,扩展了文本文件的操作,认识回车换行字符,可以进行一行字符串的读写。WriteString()和ReadString()是它特有的函数原创 2021-03-31 12:46:02 · 464 阅读 · 0 评论 -
你真的了解MFC的窗口机制了吗,请看下面的题
图1:图2图3图4图5原创 2021-03-26 14:42:20 · 92 阅读 · 0 评论