<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_38973708的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_38973708</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_38973708]]></copyright><item><title><![CDATA[多线程程管道通信 微软官方实例]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/129689580</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/129689580</guid><author>qq_38973708</author><pubDate>Tue, 21 Mar 2023 15:22:10 +0800</pubDate><description><![CDATA[https://learn.microsoft.com/zh-cn/windows/win32/ipc/multithreaded-pipe-server]]></description><category></category></item><item><title><![CDATA[内存管理笔记]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/108027369</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/108027369</guid><author>qq_38973708</author><pubDate>Sat, 15 Aug 2020 19:55:39 +0800</pubDate><description><![CDATA[1.跨模块返回指针，也就是dll返回指针时，请确保使用同样的c 运行时库，否则delete 会报错
2.新版c++可以直接调用构造函数
3.#include  classA* pa=new§classA也是调用构造函数
4.使用delete 释放数组指针如果类成员没有指针不会造成内存泄漏

...]]></description><category></category></item><item><title><![CDATA[深入浅出MFC第二章笔记]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/107886567</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/107886567</guid><author>qq_38973708</author><pubDate>Sun, 09 Aug 2020 15:08:06 +0800</pubDate><description><![CDATA[class CDocument
{
public:
 int m_nSize;	
}
class CMyDoc:CDocument
{
public:
 int m_nSize; 
}

int main()
{
CMyDoc mydoc;
mydoc.::m_nSize=2;
mydoc.m_nSize=1
return 0;
}
CMyDoc继承CDocument，CMyDoc会同时存在CDocument::m_nSize,m_nSize







]]></description><category></category></item><item><title><![CDATA[深入浅出MFC第一章笔记]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/107740241</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/107740241</guid><author>qq_38973708</author><pubDate>Sun, 02 Aug 2020 09:18:55 +0800</pubDate><description><![CDATA[1.点击关闭按钮，发送WM_close到消息队列，getmessage取出，窗口程序执行destroywindow销毁窗口，发送wm_destory到消息队列，getmessage取出,窗口程序发送wm_quit到消息队列，退出消息循环
2.控制台调用gui无关的mfc需设置/MT
3.mfc编译过程.res .obj c runtime 的lib文件(/MT或者/ML等不同库文件不同)	
4.getmessage 会在内部等待直到取出消息，peekmessage会立即返回
5.windows消息主要是3种]]></description><category></category></item><item><title><![CDATA[WaitableTimer APC队列实现时钟功能]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/103732824</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/103732824</guid><author>qq_38973708</author><pubDate>Fri, 27 Dec 2019 15:48:24 +0800</pubDate><description><![CDATA[//时钟回调函数
 static void WINAPI CallFUN(LPVOID lpArgToCompletionRoutine,
       DWORD dwTimerLowValue,
       DWORD dwTimerHighValue)
 {
  int thrid = ::GetCurrentThreadId();
  CMFCTrainDlg* pdlg = reint...]]></description><category></category></item><item><title><![CDATA[C++ 类型转换]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/103596122</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/103596122</guid><author>qq_38973708</author><pubDate>Wed, 18 Dec 2019 13:46:48 +0800</pubDate><description><![CDATA[1.dynamic_cast只能作类指针或引用的上行转换(子类转父类)，而且父类必须带虚方法,父类指针转子类指针会返回空指针，父类引用转子类引用会报错
2.static_cast强制类型转换，可以不是指针，但必须是有继承关系的类或数据类型转换
3.const_cast只能为类指针或引用添加或去除const
4.reinterpret_cast 不太确定，测试时发现转换时要么两方都是指针，要么有一方...]]></description><category></category></item><item><title><![CDATA[记录一次内存溢出错误]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/103574320</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/103574320</guid><author>qq_38973708</author><pubDate>Tue, 17 Dec 2019 09:40:10 +0800</pubDate><description><![CDATA[由于string的连接消耗内存较大，长时间高频使用报内存溢出
        public void insertdata_fun()
        {
            string sql = "";
#if DEBUG
            sql = "insert into moxa (Tag_ID,Tag_Type,Tag_Value,Tag_Unit,Tag_Timesta...]]></description><category></category></item><item><title><![CDATA[MFC标签控件练习]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/103488095</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/103488095</guid><author>qq_38973708</author><pubDate>Wed, 11 Dec 2019 10:40:04 +0800</pubDate><description><![CDATA[1.添加标签页
 CTabCtrl* ctbc = (CTabCtrl*)(GetDlgItem(IDC_TAB1));
 ctbc-&gt;InsertItem(0, TEXT("chinese"));
 ctbc-&gt;InsertItem(1, TEXT("english"));
2.创建对话框
 m_dialog1.Create(IDD_DIALOG1, ctbc);
 m_dialog...]]></description><category></category></item><item><title><![CDATA[MFC树形控件练习]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/103473259</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/103473259</guid><author>qq_38973708</author><pubDate>Tue, 10 Dec 2019 12:15:40 +0800</pubDate><description><![CDATA[1.加载图标
 HICON hic1 = theApp.LoadIcon(IDI_ICON1);
 HICON hic2 = theApp.LoadIcon(IDI_ICON2);
2.创建图形列表
m_cimage不能为局部变量
 m_cimage.Create(32, 32, ILC_COLOR32, 2, 2);
 m_cimage.Add(hic1);
 m_cimage.Add(hic2...]]></description><category></category></item><item><title><![CDATA[MFC表格练习]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/103453901</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/103453901</guid><author>qq_38973708</author><pubDate>Mon, 09 Dec 2019 10:41:02 +0800</pubDate><description><![CDATA[把view属性设置成report
BOOL CTextEditorDlg::OnInitDialog()
{
	//.......此处省略
	CRect rect;
	 CListCtrl* liststu = (CListCtrl*)(GetDlgItem(IDC_LIST1));
 	// 获取列表视图控件的位置和大小   
 	liststu-&gt;GetClientRect(&amp;r...]]></description><category></category></item><item><title><![CDATA[MFC简易文本编辑功能]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/103432587</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/103432587</guid><author>qq_38973708</author><pubDate>Sat, 07 Dec 2019 10:14:12 +0800</pubDate><description><![CDATA[1.创建插入符
afx_msg int CTextEditorDlg::OnCreate(LPCREATESTRUCT crect)
{
 TEXTMETRIC tm;
 CClientDC cdc(this);
 GetTextMetrics(cdc.m_hDC,&amp;tm);
 CreateSolidCaret(tm.tmAveCharWidth/3,tm.tmHeight);
 SetC...]]></description><category></category></item><item><title><![CDATA[MFC时钟和文本输出应用]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/103432425</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/103432425</guid><author>qq_38973708</author><pubDate>Sat, 07 Dec 2019 09:49:55 +0800</pubDate><description><![CDATA[1.消息映射
ON_WM_TIMER()
2.初始化
 CClientDC cdc(this);
 CString s = TEXT("we are the champions");
 cdc.TextOutW(0, 0, s);
 SetTimer(1, 100, NULL);
3.处理函数
afx_msg void CTextEditorDlg::OnTimer(UINT_PTR nID)
{...]]></description><category></category></item><item><title><![CDATA[MFC滚动条学习]]></title><link>https://blog.youkuaiyun.com/qq_38973708/article/details/103425310</link><guid>https://blog.youkuaiyun.com/qq_38973708/article/details/103425310</guid><author>qq_38973708</author><pubDate>Fri, 06 Dec 2019 16:26:18 +0800</pubDate><description><![CDATA[1.消息映射
ON_WM_HSCROLL()
2.初始化
BOOL CTextEditorDlg::OnInitDialog()
{
//.................
//.................此处省略
 CScrollBar* csc = (CScrollBar*)GetDlgItem(IDC_SCROLLBAR1);
 csc-&gt;SetScrollRange(1, 10...]]></description><category></category></item></channel></rss>