04 2013 档案
摘要:代码资料:http://pan.baidu.com/share/link?shareid=481434&uk=2550302069 1.创建菜单 2.建立菜单功能 3.创建新的Dialog 4.创建新的类 5.为对话框成员添加变量 6.为新创建的类添加消息响应(用于初始化) 7.在void CQweView::OnMenu() 的文件中...
阅读全文
摘要:创建或初始化销毁进入互斥区域离开互斥区域关键段CSInitialize-CriticalSectionDelete-CriticalSectionEnter-CriticalSectionLeave-CriticalSection互斥量MutexCreateMutexCloseHandle等待系列函数如WaitForSingleObjectReleaseMutex键段与互斥量都有“线程所有权”概念,可以将“线程所有权”理解成旅馆的房卡,在旅馆前台登记名字拥有房卡后是可以多次进出房间的,其它人则无法进入直到你交出房卡。每个线程必须先通过EnterCriticalSection或WaitForSi
阅读全文
摘要:信号量作用:用来保护关键代码段不被多线程并法调用(处理主线程与子线程的同步性问题) 信号量常用有三个函数: 第一个:创建信号量 HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName ); 第一个参数:表示安...
阅读全文
摘要:参考博客:http://blog.csdn.net/morewindows/article/details/7470936 使用Mutex来解决资源的互斥访问 互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行为非常相似,并且互斥量可以用于不同进程中的线程互斥访问资源。使用互斥量Mutex主要将用到四个函数。 第一个:创建互斥量 HANDLECreateMut...
阅读全文
摘要:参考博客:http://blog.csdn.net/morewindows/article/details/7445233使用Event来解决线程同步问题,Event其实是一个内核对象,下面列出相关的操作函数1.创建事件HANDLECreateEvent(LPSECURITY_ATTRIBUTESlpEventAttributes,BOOLbManualReset,BOOLbInitialState,LPCTSTRlpName);第一个参数:表示安全按控制一般传入NULL第二个参数:确定事件是手动设置还是自动设置 手动设置(TRUE):触发后允许所有线程执行,一直到关闭为止 ...
阅读全文
摘要:参考博客:http://blog.csdn.net/morewindows/article/details/7442639本篇用CRITICAL_SECTION来解决多线程同步互斥的问题CRITICAL_SECTION 一共有四个函数:1.初始化:定义关键段变量后必须先进行初始化才能使用void InitializeCriticalSection(LPCRITICAL_SECTIONlpCriticalSection)2.销毁:使用完之后要记得销毁void DeleteCriticalSection(LPCRITICAL_SECTIONlpCriticalSection);3.进入关键区域:保
阅读全文
摘要:参考博客:http://blog.csdn.net/morewindows/article/details/7442333主线程启动10个子线程并将表示子线程序号的变量地址作为参数传递给子线程。子线程接收参数 -> sleep(50) -> 全局变量++ -> sleep(0) -> 输出参数和全局变量。 1 #include <stdio.h> 2 #include <process.h> 3 #include <windows.h> 4 long g_num; //登录次数 5 unsigned int __stdcall Fun
阅读全文
摘要:参考博客:http://blog.csdn.net/morewindows/article/details/7429155本想以该博客的指示编写程序找出漏洞,但是却没有发现异常//创建多子个线程实例#include <stdio.h>#include <process.h>#include <windows.h>volatile long g_nLoginCount=0; //登录次数 const int THREAD_NUM = 55; //启动线程数 //子线程函数unsigned int __stdcall ThreadFun1(PVOID pM){
阅读全文
摘要:参考文章:http://blog.csdn.net/morewindows/article/details/7392749CreateThread:函数原型HANDLEWINAPICreateThread( LPSECURITY_ATTRIBUTESlpThreadAttributes,/ SIZE_TdwStackSize,LPTHREAD_START_ROUTINElpStartAddress, LPVOIDlpParameter, DWORDdwCreationFlags, LPDWORDlpThreadId);第一个参数:内核对象安全属性,一般用null来默认设置第二个参数:表示线程栈
阅读全文
摘要:次程序只能实现一问一答的模式聊天,要实现随机性聊天貌似要用到线程参考资料http://www.cnblogs.com/qxhcpp/archive/2012/04/27/2473756.html服务端:#include <Winsock2.h>#include <stdio.h>void main(){ WORD wVersionRequested;//定义一个word类型的变量 WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionReq...
阅读全文
摘要:1.使用之前必须链接库函数 工程--设置--Link--输入ws2_32.lib 服务端函数编程#include <Winsock2.h> #include <stdio.h> #include <memory.h>void main() { WORD wVersionRequested; //保存要加载winsock的版本号 WSADATA wsaData; int err; //通过MAKEWORD获得要加载的winsock的版本 wVersionRequested = MAKEWORD( 1, 1 ); //加载套接字库,确定要使用到socket版本
阅读全文
摘要:void CTxtView::OnFileWrite() {// TODO: Add your command handler code hereCFile file("c:\\1.txt",CFile::modeCreate||CFile::modeWrite);CArchive ar(&file,CArchive::store);CString str="123";//ar<<str;//ar.Flush();file.Write("123",3);ar.Close();file.Close();}void C
阅读全文
摘要:今日用CArchive练习流输入,不料输出结果有差异,未查明原因,特此记录void CTxtView::OnFileWrite() {// TODO: Add your command handler code hereCFile file("c:\\1.txt",CFile::modeCreate||CFile::modeWrite);CArchive ar(&file,CArchive::store);CString str="123";ar<<str; ar.Flush();//file.Write("123"
阅读全文
摘要:CFileException类的声明文件保存在头文件afx.h中。当我们在使用CFile及其派生类的对象的时候,如果产生异常则会创建和抛出CFileException对象。采用TRY…CATCH…END_CATCH。CFileException类的成员变量:m_cause:错误代码CFileException::none没有错误发生CFileException::generic一个未被指明的错误发生CFileException::fileNotFind该文件不能被定位CFileException::badPath整个或者部分路径是无效的CFileException::tooManyOpenFi
阅读全文
摘要:1) 在 View 中获得 Doc 指针 CYouSDIDoc *pDoc=GetDocument();一个视只能有一个文档。2) 在App 中获得MainFrame 指针 CWinApp 中的 m_pMainWnd 变量就是 MainFrame 的指针也可以: CMainFrame *pMain =(CMainFrame *)AfxGetMainWnd();3) 在 View 中获得 MainFrame 指针 CMainFrame *pMain=(CmaimFrame*)AfxGetApp()->m_pMainWnd;4) 获得 View (已建立)指针CMainFrame *pMai
阅读全文
摘要:一.创建插入符1, 添加 View类的 WM_CREATE 消息响应函数 2, 在 CXXXView::OnCreate()中添加 //获得当前文本度量/字体信息 CClientDC dc(this); TEXTMETRIC tm; dc.GetTextMetrics(&tm); //根据当前字体,设置插入符/光标 CreateSolidCaret(20,100); //** ShowCaret();二.创建图形插入符1),为 View类添加成员变量 m_bmp; 2),把上面的**行用如下语句替换 m_bmp.LoadBitmap(IDB_BITMAP1); CreateCaret(
阅读全文