摘要:进程间通信的四种方式剪贴板匿名管道命名管道邮槽Win32平台下,内存块在物理内存中从来不会被移动,但可以在缺省的堆中被移动剪贴板将数据存入剪贴板:void CClipboardDlg::OnBnClickedBtnSend(){// TODO: 在此添加控件通知处理程序代码if(OpenClipboard()){CString str;char * pBuf;HANDLE hClip;EmptyClipboard();GetDlgItemText(IDC_EDIT_SEND,str);hClip=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);pBuf
阅读全文
摘要:1、获取应用程序指针 CMyApp* pApp=(CMyApp*)AfxGetApp();2、获取主框架指针 CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针 CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd); 或者 CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();3、获取菜单指针 CMenu* pMenu = AfxGetMainWnd()->GetMenu(); GetMenu()后面还可以这样写获得菜单项的指针Get
阅读全文
摘要:有四种同步方法:互斥体(Mutex),事件(Event),临界区(Critical Section),以及信号量(Semaphore)。注:以下所说的“全局变量”也可换为局部变量,只要各线程(包括主线程)能访问即可。1、使用Mutex定义全局变量HANDLE hMutex;在主线程中调用hMutex = CreateMutex(NULL, FALSE, NULL);(参数的具体含义请查看MSDN)然后,在子线程中:WaitForSingleObject(hMutex);[[受保护的代码]]ReleaseMutex(hMutex);2、使用Event定义全局变量HANDLE hEvent;在主线
阅读全文
摘要:C语言由于其功能强、使用灵活、可移植性好、目标程序质量高而受到广泛的欢迎。同时由于C语言语法限制不严格,程序设计自由度大,在使用时会出现一些“副作用”。因此掌握C语言要比掌握其它任何一门语言相对要难一些,尤其是对C语言中++和――运算符的使用。正确而又灵活地使用好++/――运算符,可以编写出风格简洁、灵活高效的源代码,极大地提高编程的效率。但由于它们的使用过于灵活多变,不易掌握;再加上许多教科书和杂志上对这个问题讲得不够深入透彻,致使许多初学者对此感到格外头疼。笔者根据多年从事C语言编程的经验,把C语言中++/--运算符的使用做了一个总结,希望对C语言的初学者有一个帮助。笔者认为,++/――运
阅读全文
摘要:http://zhhdesigner.blog.163.com/blog/static/13078196320111141142998/
阅读全文
摘要:在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。编辑本段一般格式 其格式一般为: #Pragma Para。其中Para 为参数,下面来看一些常用的参数编辑本段常用参数 #pragmamessage 参数 Message 参数能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #pragma...
阅读全文
摘要:一、为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的。结构化编程是函数块的形式,通过把一个软件划分成许多模块,每个模块完成各自不同的功能,尽量做到高内聚低藕合,这已经是一个很好的开始,我们可以把不同的模块分给不同的人去做,然后合到一块,这已经有了组装的概念了。软件工程的核心就是要模块化,最理想的情况就是100%内聚0%藕合。整个软件的发展也都是朝着这个方向走的。结构化编程方式只是一个开始。下一步就出现了面向对象编程,它相对于面向功能的结构化方式是一个巨大的进.
阅读全文
摘要:匿名管道 管道(Pipe)是一种具有两个端点的通信通道:有一端句柄的进程可以和有另一端句柄的进程通信。管道可以是单向-一端是只读的,另一端点是只写的;也可以是双向的一管道的两端点既可读也可写。 匿名管道(AnonymousPipe)是在父进程和子进程之间,或同一父进程的两个子进程之间传输数据的无名字的单向管道。通常由父进程创建管道,然后由要通信的子进程继承通道的读端点句柄或写端点句柄,然后实现通信。父进程还可以建立两个或更多个继承匿名管道读和写句柄的子进程。这些子进程可以使用管道直接通信,不需要通过父进程。 匿名管道是单机上实现子进程标准I/O重定向的有效方法,它不能在网上使用,也不能用...
阅读全文
摘要://代码 在vc6.0上面编译通过#include <iostream>using namespace std;void BubbleSort(int arr[], int n){int i=0,j=0; for(i=0;i<n;i++){for(j=0;j<n-1-i;j++){if(arr[j]>arr[j+1]){int temp;temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;} } }}int main(){int a[] = {4,2,9,5,8};for (int i=0;i<5;i++){cou
阅读全文
摘要:ID--HANDLE--HWND三者之间的互相转换id->句柄 hWnd = ::GetDlgItem(hParentWnd,id);id->指针 CWnd::GetDlgItem();句柄->id id = GetWindowLong(hWnd,GWL_ID);句柄->指针 CWnd *pWnd=CWnd::FromHandle(hWnd);指针->ID id = GetWindowLong(pWnd->GetSafeHwnd,GWL_ID); GetDlgCtrlID();指针->句柄 hWnd=cWnd.GetSafeHandle() or my
阅读全文
摘要:如果想改变已经摆好的控件在CDiglog中的顺序,可以按下快捷键Ctrl+D 根据自己的需求 改变控件操作的顺序···
阅读全文