自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

转载 Shlwapi.dll(以Path,SH,Str开头的函数)

Shlwapi.dll(以Path,SH,Str开头的函数)  2012-05-12 09:10:26|  分类: VC函数|举报|字号 订阅转:http://blog.sina.com.cn/s/blog_60fc9f140100rd2z.htmlMSDN上有关Path的函数说明:http://msdn.microsoft.com/en-us/

2014-12-17 12:02:37 1173

转载 STL的常用算法

STL的常用算法

2014-12-01 21:15:17 375

翻译 memset;wmemset(源自msdn)

以下源自msdn:void *memset(   void *dest,   int c,   size_t count );wchar_t *wmemset(   wchar_t *dest,   wchar_t c,   size_t count);

2014-09-13 10:49:58 831

转载 error cannot convert from 'std::_Vector_iterator<_Ty,_Alloc>

对于 向量类的错误vector比如error C2440: 'type cast' : cannot convert from 'std::_Vector_iterator' to 'cvpoint*'这是由于vc6.0和vs2005不同的编译规则引起的,一般在vc6.0中可以通过的,在vs2005就会出现这样的错误,解决办法:定义:cvpoint * pt;typedef vec

2014-09-09 11:12:54 2095

原创 线程同步使用方法:CMutex_CEvent_关键代码段

《WIndows核心编程》机械工艺出版社:深入的了解多线程和线程同步的问题3个的使用范围:1. CMutex、CEvent、关键代码段CMutex、CEvent:属于内核对象,速度比较慢,但可以拥有跨进程的线程同步关键代码段:工作于用户方式下,同步速度快,可能会造成死锁,不能拥有跨进程同步1. CEvent1.1 CEvent g_event=CreateEvent(NUL

2013-04-29 22:38:30 899

原创 PostMessage - SendMessage

1. CWnd::PostMessageBool PostMessage(UINT message,WPARAM wParam=0,LPARAM lParam=0);返回值:Nonzero if the message is posted; otherwise 0.(即消息是否提交成功)说明:将消息放入windows消息队列,就直接返回,需要通过使用GetMessage或PeekMes

2013-04-14 11:11:34 607

原创 CSemaphore/CMutex/CCriticalSection/CEvent区别

摘录:http://mist99.blog.163.com/blog/static/6285599320081191040103/如果某个线程必须等待某些事件发生后才能存取相应的资源,用CEvent;如果一个应用同时可以有多个线程存取相应资源,用CSemaphore;如果有多个应用(多个进程)同时存取相应资源,用CMutex,否则用CCriticalSection。  CCriti

2013-04-13 09:24:34 568

原创 易艾斯德面试-sizeof-参数

#include "stdafx.h"#include "stdlib.h"void fun1(char str[26]);int _tmain(int argc, _TCHAR* argv[]){ char str[100]; fun1(str); system("pause"); return 0;}void fun1(char str[26]){

2013-04-11 10:00:31 576

原创 恒和大风 - 机试题

1. 不用string.h实现一句话的逆序输出char c[] = "abcdefg";int c_length = sizeof(c)-1;char* pszOut = (char*)malloc(c_length+1);char* temp_pszOut = pszOut;while (c_length-->0){*temp_pszOut++ = *(c +

2013-04-05 16:37:32 1025

转载 SQL_存储过程_什么情况下使用方便

摘自:http://www.cnblogs.com/jack-liang/archive/2011/08/08/2130648.html什么时候使用存储过程比较适合? 当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程;当在一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个状态的判断更改等)要考虑;还有就是比较复杂的统计和汇总也要考虑,但是过多的

2013-03-28 11:27:31 821

原创 SQL_存储过程_增删改查用

注:PROCEDURE可简写作:proc>> 增:简单情形: CREATE PROCEDURE my_Grade(@number char(8)) AS   SELECT student.sno,sname,cname,grade   FROM student,xuanxiu,course   WHERE student.sno=xuanxiu.sno and cour

2013-03-28 11:04:01 726

原创 MFC_多线程的使用

1. 使用的头文件#include "afxmt.h" //添加"afxmt.h"实现文件中能够正确使用同步类CSemaphore关键理解:CSemaphore sem_Write(2,2); //资源最多访问线程2个,当前可访问线程数2个 函数一:WaitForSingleObject 函数用来检测hHandle事件的信号状态,当函数的执行时间超过 dwMil

2013-03-26 22:58:01 548

原创 MFC_SOCKET_关于socket的服务端与客户端的通信

1. 如何创建socket对象成功1.1 创建socket对象用到的头文件:#include #include #pragma comment(lib, "ws2_32")创建对象:SOCKET sock = socket(2, 1, 0);if (INVALID_SOCKET != sock){AfxMessageBox("成功");}else

2013-03-25 23:18:48 812

原创 MFC_CMenu_CIconMenu_带图标的菜单

效果图:1. 如何修改单文档的标题(注:一个窗口的图标是由两部分组成的:文档标题+应用标题,此处修改的是文档标题)在*doc.h中添加:virtual void SetTitle(LPCTSTR lpszTitle);之后实现:void ***Doc::SetTitle(LPCTSTR lpszTitle) { lpszTitle = "带图标的程序菜单";

2013-03-24 11:25:56 3579

原创 MFC_BitmapTool(点击图标做相应的操作)

效果图:它的作用:点图标实现一个功能,该图标通过bitmap来实现1. 新建一个bitmap文件2. 在OnInitDialog()中,添加代码// 对每个图标设置资源IDUINT array[10];for (int i = 0;i{if (i ==3)array[i]= ID_SEPARATOR; //第四个按钮为分隔条elsearray[i

2013-03-24 09:38:23 683

原创 MFC_如何连接Access数据库_读取出的数据显示在树上

第一部分:如何建立连接1. stdafx.h中添加:#import "c:\Program Files\\Common Files\\System\\ado\\msado15.dll" re_namespace ADODB \rename("EOF","ADOEOF")using namespace ADODB;2. 在当前应用的cpp里定义(和theApp的定义放一起):

2013-03-24 09:05:22 947

原创 MFC_CMenu_AppendMenu_基于dialog的动态创建menu

标题:基于dialog的动态创建menu使用方法:1. 在对话框的OnInitDialog()中SetMenu(&m_menu),主要是对m_menu的编辑2. 根 菜 单:m_menu.CreateMenu(); //如:“基础信息管理”、“系统管理”     弹出菜单:popmenu.CreatePopupMenu(); //如:“操作员信息”  m_menu.Crea

2013-03-23 17:55:28 2739

原创 MFC_CComboBox - 添加字符 - 清空字符 - 获得当前字符 - 获得本机磁盘号

// 添加字符void CCMyComDlg::OnButton1() { CComboBox* combobox1 = (CComboBox*)GetDlgItem(IDC_COMBO1); combobox1->AddString("男"); combobox1->AddString("女"); }// 清空字符void CCMyComDlg::OnButton

2013-03-21 22:09:21 1160

原创 MFC_OnPaint_设置窗口背景图片

1. 不会自动适应窗口大小 CRect rc;  GetWindowRect(&rc);  CDC *pDC;  CDC memdc;  CBitmap *olddc;  CBitmap bitmap;  bitmap.LoadBitmap(IDB_BITMAP1);  pDC=this->GetDC();  memdc.CreateCompatibleDC(p

2013-03-21 21:52:10 1263

原创 MFC_OnSize_改变窗口大小(WM_SIZE消息映射)

//当改变窗口大小时,调节控件EDIT的大小void CChgWndDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); GetDlgItem(IDC_EDIT1)->MoveWindow(10,10,cx-20,cy-10); // 后面的那两个坐标要多减去10} 注:要将窗

2013-03-21 21:05:25 4490

原创 MFC - 进程间传递消息数据

>> SendMessageHWND hwnd=::FindWindow(NULL,"DataMsgClient"); if(hwnd==NULL) {  AfxMessageBox("没有找到接受窗体");  return; } CString msgedit; GetDlgItem(IDC_EDIT1)->GetWindowText(msgedit);

2013-03-21 20:55:53 617

原创 MFC - 进程间传递消息命令

对话框:HWND hwnd=::FindWindow(NULL,"ReceiveMsg"); if(hwnd==NULL) {  AfxMessageBox("没有找到接受消息的窗体");  return; } ::SendMessage(hwnd,WM_ENABLEBUTTON,0,0);说明:自定义:#define WM_ENABLEBUTTON WM_USER

2013-03-21 20:41:12 604

转载 void *memset(void *s, int ch, unsigned n);

函数原型  void *memset(void *s, int ch, unsigned n); 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。需要的头文件 or 程序例  #include   #include   #include    i

2013-03-21 16:15:28 737

COM写的一个弹出错误对话框的程序,用于自己的程序中错误信息的管理

这里是一个COM写的项目,用于弹出错误对话框,可以在自己写的项目中调用对应接口,用于错误处理,里面最多可以列出最近的10个错,里面共有3个接口: 1. 添加错误信息: ptr->AddErrorMsg((_bstr_t)"出错类名",(_bstr_t)"出错函数名",(_bstr_t)"出错语句",(_bstr_t)"备注或描述"); 2. 弹出错误对话框: ptr->ShowErrorMsg(); 3. 清空错误信息列表: ptr->Empty(); 压缩包里有个"配置.txt",介绍了如何使用该项目中的接口

2012-07-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除