C/C++
文章平均质量分 81
leez0301
这个作者很懒,什么都没留下…
展开
-
unique_copy算法
unique_copy根据字面意思就是去除重复元素在执行copy运算。 int ia[] = { 0, 1, 1, 2, 3, 5, 5, 8 };vector ivec( ia, ia+8 ), vres;// 执行下面操作程序异常终止unique_copy( ivec.begin(), ivec.end(), vres.begin() );因为vres 没有被分配空间,un原创 2009-08-28 15:38:00 · 822 阅读 · 0 评论 -
ATL正则表达式实例
1、匹配数字、字符、下划线BOOL RegexMatch(CString sourceStr){ CAtlRegExp reRule; wchar_t *wt = L"^[A-Za-z0-9-_]+$"; //只能输入由数字和26个英文字母和'-''_'组成的字符串 REParseError status = reRule.Parse((const ATL::CAtl原创 2013-04-16 16:24:39 · 933 阅读 · 0 评论 -
统计字符串中某个字符出现的次数
统计字符串中某个字符出现的次数用标准库算法函数“ count_if”。1、标准库string类型const stringstr = “testString”;int count = count_if( str.begin(), str.end(), bind2nd(equal_to(), '某字符' );2、CString类型CString st原创 2013-04-16 17:08:07 · 2227 阅读 · 0 评论 -
C++运行时错误处理
闲来无事作点翻译工作,今天要介绍的是关于错误处理的.以下内容大部分不是我的原创,我只是把他们收集到一起来了而已. 错误处理在一个系统里面算是一个比较底层的东西了.拥有一个稳定的错误处理系统,是一个良好的系统的基础.从发展的角度看,错误处理大体有下面几种方式. 比较基础的,使用返回值表示错误还是正确,比如使用int作为返回值,0表示正常1表示错误,这种算是c语言里转载 2013-06-26 10:26:34 · 3285 阅读 · 0 评论 -
Windows异常处理
1、Windows对于C++异常处理的扩展:为了更便捷的在Windows系统中进行异常处理,微软在C++异常处理的机制上,又增加了扩展,称为SEH(Structured Exception Handling),即结构化异常处理;语法如下:__try{……}__except (){……}Windows exception 最常见的问题 :run转载 2013-06-26 11:28:01 · 940 阅读 · 0 评论 -
C++调用ATL事件连接点
在调用者工程中,需要增加“接收器”对象,添加一般的C++类对象,从IDispatch 派生,然后完成继承的虚函数,如创建CSink类,继承自IDispatch ,完成Simple16库中触发事件的接收器。// 头文件#pragma once#include "oaidl.h"class CSink :public IDispatch{public:CSink(v转载 2013-12-24 11:25:28 · 978 阅读 · 1 评论 -
向页面发送http请求获取服务器时间
asdasdBOOL BjcaFunc::GetNetTime(string &year, string &month, string &day) { // HINTERNET internetopen;// internetopen=InternetOpen(_T("getTime"), INTERNET_OPEN_TYPE_PRECONFIG, NULL,原创 2014-04-18 13:04:28 · 3114 阅读 · 0 评论 -
C++ 局部静态初始化不是线程安全!
http://blogs.msdn.com/b/oldnewthing/archive/2004/03/08/85901.aspx 在块作用域中的静态变量的规则 (与之相对的是全局作用域的静态变量) 是, 程序第一次执行到他的声明的时候进行初始化.察看下面的竞争条件:int ComputeSomething(){ static int cachedResult = Co转载 2014-05-29 14:29:26 · 898 阅读 · 0 评论 -
设置当前进程的区域语言
//获取默认的区域语言 if (GetUserDefaultUILanguage() == MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED)) // [中文(简体)] { } //设置当前的进程区域语言 SetThreadUILanguage(MAKELANGID(LANG_ARABIC, SUBLANG_ARABIC_SAU原创 2015-12-31 11:09:31 · 2039 阅读 · 0 评论 -
micphone静音设置(vista版本以上)
设置麦克风静音#include "windows.h" #include #include "mmdeviceapi.h"#include #pragma comment(lib, "Winmm.lib")#define SAFE_RELEASE(ptr) \ { \ if (ptr) \ { \ (ptr)->Release(); \原创 2015-12-31 11:17:59 · 797 阅读 · 0 评论 -
如何计算电池充满电的预计时间
//获取系统电池的充电速率,可以通过充电速率估算出电池充满的时间#include #include #include #include #include #pragma comment(lib,"PowrProf.lib") int _tmain(int argc, _TCHAR* argv[]){ NTSTATUS Processor_information; SYS原创 2015-12-31 11:29:34 · 4133 阅读 · 1 评论 -
GetVersion和GetVersionEx
出自:http://flyxxtt.blogbus.com/logs/42705986.htmlWindows API 中有两个函数可以得到系统版本信息:GetVersion和GetVersionEx。GetVersion这个函数曾经困扰了很多程序员,其本来设计的是在DWORD返回值中用低位的那个字表示MS-DOS的版本号,高位的那个字表示Windows版本号。对于每个字来说,高位转载 2013-04-15 11:54:08 · 834 阅读 · 0 评论 -
求日期之间的天数差
得到给定日期和当前日期之间的相差天数。#include //传入参数格式如“20130604131744”int BjcaFunc::getCertRemainDay(wchar_t*certEndData){ int nYear,nMouth,nDay; wchar_t desData[20] = {0}; wmemcpy(desDat原创 2013-03-27 14:26:23 · 773 阅读 · 0 评论 -
STL排序算法
sort :以升序重新排列范围内的元素,重载版本使用了自定义的比较操作。 算法比较简单,stable_partition :与 partition 类似,不过它不保证保留容器中的相对顺序。 templateBidirectionalIteratorstable_partition( BidirectionalIterator first,BidirectionalIterator la原创 2009-09-01 11:10:00 · 827 阅读 · 0 评论 -
COM控件快速调试
编写的com控件调试方法,个人觉得通过IE的方式调试比较简单。1、 编写调用的html脚本,将下面脚本修改保存为test.htmlHtml>head>Script Language="JavaScript">try{var oAppExam = new ActiveXObject("ComLib.ComApp");var tesVal = 1;var r原创 2013-01-16 17:27:41 · 614 阅读 · 0 评论 -
com控件的几种调用方法(C++)
首先控件必须注册。1、调用控件生成时的*.c和*.h文件,定义一个接口变量,创建实例IMyDll myInterFace = NULL;myInterFace.CreateInstance( CLSID ); myInterFace.fun();2、没有控件生成时的*.c和*.h文件时,在代码中添加#import "*.dll",通过#import "*.dll" 后原创 2013-01-16 17:14:30 · 2195 阅读 · 0 评论 -
管理员权限运行应用程序
Vista 之前的系统,当用户使用管理员账户登录时,一个安全令牌会被创建,之后操作系统访问一些安全资源时会用到它,由 Windows Explorer 开始,这个安全令牌会同新创建的进程关联,进而也影响到它们的子进程。恶意软件也会使用这个安全令牌运行,它就能访问到任意的资源。从 Windows Vista 开始,如果一个用户作为系统管理员登录,除了相应的安全令牌创建之外,还创建了一个受限令转载 2013-02-25 10:46:30 · 1086 阅读 · 0 评论 -
c++ 提升应用程序的权限
1、判断当前用户权限是否管理员权限BOOL IsRunAsAdmin(){ BOOL fIsRunAsAdmin = FALSE; DWORD dwError = ERROR_SUCCESS; PSID pAdministratorsGroup = NULL; // Allocate and initialize a SID of the administrators group.转载 2013-02-25 10:57:04 · 2422 阅读 · 0 评论 -
VC正则表达式的使用
正则表达式是一种对字符进行模糊匹配的一个公式。在数据有效性验证,查找,替换文本中都可以使用正则表达式 。本篇文章主要描述的是使用ATL中两个模板类CAtlRegExp和CAtlREMatchContext。在使用CAtlRegExp类之前需要添加#include 这个头文件。RegExp是Regular Expression的缩写以匹配邮件地址字符串为例说明两个类的使用转载 2013-03-21 11:31:02 · 1117 阅读 · 0 评论 -
WTL创建密码框
//hpp file CEdit m_editPassWordNew;//cpp file if( m_editPassWordNew.Create(GetViewHWND(), NULL, NULL, WS_CHILD | WS_TABSTOP | WS_BORDER | ES_PASSWORD/*| ES_NUMBER*/)) { m_editPassWordNew.S原创 2013-03-21 10:10:39 · 897 阅读 · 0 评论 -
如何修改CFileDialog的标题
CFileDialog f(TRUE); f.m_ofn.lpstrTitle = "我的标题"; f.DoModal();CFileDialog 使用介绍CFileDialogCFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:CFileDialog::CFileDialog( BOOL转载 2013-03-22 10:19:02 · 1142 阅读 · 0 评论 -
C语言操作WINDOWS系统存储区数字证书相关函数详解及实例
C语言操作WINDOWS系统存储区数字证书相关函数详解及实例 以下代码使用C++实现遍历存储区证书及使用UI选择一个证书 --使用 CertOpenSystemStore打开证书存储区. --在循环中,使用CertEnumCertificatesInStore. 枚举所有存储区中的证书. --使用CryptUIDlgViewContext显示一个证书 . --使用C转载 2013-03-22 17:29:51 · 995 阅读 · 0 评论 -
实现tab按键切换Edit控件焦点(WTL)
BOOL ChangePassWordDlg::PreTranslateMessage(MSG* pMsg){ HWND hEdit = pMsg->hwnd; if((NULL != hEdit) && (WM_KEYDOWN == pMsg->message) && (VK_TAB == pMsg->wParam)) { TCHAR szC原创 2013-04-08 16:09:25 · 1627 阅读 · 1 评论 -
获取当前分辨率及dip值
#include "ShellScalingAPI.h"#pragma comment(lib, "Shcore.lib") //输出当前分辨率 int width = GetSystemMetrics(SM_CXSCREEN);int height = GetSystemMetrics(SM_CYSCREEN);//输出当前dpiHDC原创 2015-12-21 10:13:40 · 2481 阅读 · 0 评论