vc
pjl1119
这个作者很懒,什么都没留下…
展开
-
strstr, strcat 函数的实现
strstr函数:返回主串中子字符串的位置后的所有字符。#include <stdio.h>const char *my_strstr(const char *str, const char *sub_str){ for(int i = 0; str[i] != '\0'; i++) { int tem = i; //tem保留主串中的起始判断...转载 2018-09-26 22:42:56 · 419 阅读 · 0 评论 -
(STL容器) vector. list. set. deque. map.
C++标准程序库提供了各具特长的不同容器。现在的问题是:该如何选择最佳的容器类别?下表给出了概述。但是其中有些描述可能不一定实际。例如:如果你需要处理的元素数量很少,可以忽略复杂度,因为线性算法通常对元素本身的处理过程比较快,这种情况下,“显性复杂度搭配快速的元素处理”要比“对数复杂度搭配慢的元素处理”来得划算。 作为对上表的补充,使用时: 1.缺省转载 2015-05-06 09:46:42 · 572 阅读 · 0 评论 -
VS2008一调试就崩溃
今天遇到一个问题:VS2008只要一调试就假死,但是随后又弹出了编译生成的软件窗口,但VS2008仍然是假死状态。相当诡异,重启电脑也不行。不想重装VS, 只能恢复到初始状态了cmddevenv.exe /ResetSettings devenv.exe /ResetSkipPkgs devenv.exe /Setup原创 2015-05-11 17:23:07 · 2812 阅读 · 0 评论 -
shlwapi.dll中的实用API函数
在windows system目录下有这个动态链接库 BOOL PathFileExists(LPCTSTR lpszPath)功能:检查文件/路径是否存在 LPTSTR PathFindFileName(LPCTSTR pPath)功能:获得路径中的文件名例如: PathFindFileName( “c:\\Program Files\\File.txt”转载 2015-04-21 15:39:51 · 5044 阅读 · 0 评论 -
VC中检测设备变化,OnDeviceChange
ON_WM_DEVICECHANGE()BOOL OnDeviceChange(UINT nEventType, DWORD_PTR dwData);//检测设备的变化,当USB设备增加或减少时,响应原创 2015-01-21 16:12:45 · 2775 阅读 · 0 评论 -
VS远程调试
1、将Release环境的项目的优化改为禁用;VS2010进行远程调试方法总结(2012-06-07 23:15:26)转载▼标签:远程调试方法it分类: 调试假设现在有A、B两台PC机。VS2010安装在A机器上,也就是说A机器是开发使用的机器。B机器是程序运行部署使用的机器,转载 2014-12-31 17:08:47 · 732 阅读 · 0 评论 -
HTML(javascript ),ondragstart,禁止鼠标拖动
HTML中,ondragstart="return false", 禁止鼠标拖动该控件PC客户端中内嵌的网页,原创 2014-11-24 10:18:11 · 10374 阅读 · 0 评论 -
计算字符串显示后占用的宽度
LOGFONT lf = { 0 }; ::GetObject(::GetStockObject(DEFAULT_GUI_FONT), sizeof(LOGFONT), &lf); _tcscpy(lf.lfFaceName, _T("Microsoft YaHei")); lf.lfCharSet = DEFAULT_CHARSET; lf.lfHeight = -14; H原创 2013-09-26 19:56:31 · 2087 阅读 · 0 评论 -
通过ADB启动手机端APK
一、adb shell monkey -p 包名 -c android.intent.category.LAUNCHER 1原创 2014-09-23 15:21:40 · 18583 阅读 · 0 评论 -
简体中文——繁体转换
一、、、//简体转换为繁体wchar_t* Simp2Trad(const wchar_t* szUnicodeString){ LCID lcid = MAKELCID(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),SORT_CHINESE_PRC); int nLength = LCMapString(lcid,LCMAP_TR原创 2014-07-28 16:18:06 · 1286 阅读 · 0 评论 -
动态dll工程不能生成lib文件
用vs2008创建了一个动态dll项目,编译之后发现没有生成lib文件检查发现是确少.def文件。解决办法:在工程上右键 -> 添加 -> 新建项 -> 选"模块定义文件(.def)" -> 输入名字 -> 添加现在编译就可生成.lib 文件了。模块定义文件(.def)用于导出一个DLL的函数,和__declspec(dllexport)很相似,但是.def原创 2016-04-25 15:43:18 · 701 阅读 · 0 评论 -
Windows监控文件变化(ReadDirectoryChangesW)
Windows提供了API对文件和目录进行监控,分别是:FindFirstChangeNotification和ReadDirectoryChangesW。FindFirstChangeNotification函数,可以监控到目标目录及其子目录中下有文件发生改变,但不能监控到具体是哪一个文件发生改变。ReadDirectoryChangesW 能监控到目标目录下某一文件发生改变,并原创 2016-04-28 16:25:15 · 8285 阅读 · 4 评论 -
DLL的显式调用与隐式调用
一、隐式调用编译程序时需要头文件、lib文件,运行时需要DLL文件,并且运行过程中DLL文件一直被占用。#pragma comment(lib, "Common.lib")二、显式调用编译时什么都不需要,在需要使用DLL中的函数时,通过LoadLibrary()和FindProcAdress()这两个API调用。只需要一个DLL文件即可,而且在需要使用的时候DLL才被占用,使用完毕即解除占用(Fr...转载 2018-04-23 15:10:05 · 925 阅读 · 0 评论 -
sizeof与strlen的区别
char str[20]="0123456789"; int a=strlen(str); /*a=10; strlen 计算字符串的长度,以\0'为字符串结束标记。 int b=sizeof(str); /*b=20; sizeof 计算对象所占的内存空间的大小,不受里面存储的内容影响====================================================...转载 2018-04-21 23:59:10 · 292 阅读 · 0 评论 -
从视频中抓取所有的车牌号
opencv播放视频 (https://blog.csdn.net/qq_32925781/article/details/53709271)opencv抓拍 (https://blog.csdn.net/rainvictor1/article/details/61625143)ocr 技术识别车牌号 (开源的OCR代码,或在线首付的,如阿里云OCR)...原创 2018-04-11 18:35:57 · 7861 阅读 · 0 评论 -
memset一个类指针为0,类对象还可以用吗
答案是肯定的,还可以使用。class CNullPointCall{public: CNullPointCall() { this->m_iTest = 1100; } static void Test1(); void Test2(); void Test3(int iTest); void Test4();private: static int m_iStati...原创 2018-04-04 14:46:09 · 965 阅读 · 1 评论 -
结构体没有重载==,不能判断相等!!没有重载=,可以赋值
struct stStudent{ int num; wstring name; wstring level; bool isTwo;};自定义的结构体,没有重载operator==,是不能进行等于判断的。没有重载operator=,可以进行赋值操作 stStudent a, b; a.isTwo = false; a.level = L"1"; a.name = L"zhans...原创 2018-04-04 14:34:43 · 3145 阅读 · 0 评论 -
C++ 字符串不区分大小比较
1、使用C++提供的忽略大小写的比较函数使用到的函数不是C++标准库中的函数,windows和Linux下各有不同的实现,所以使用宏定义进行处理实现跨平台stricmp是windows下提供的函数strcasecmp是Linux下提供的函数,使用时需要包含头文件strings.hstring strSrc = "Hello, World";string strDes = "Hello, worl...转载 2018-04-04 12:53:30 · 5419 阅读 · 0 评论 -
memmove 解决内存拷贝时内存重叠的问题
内存重叠:拷贝的目的地址在源地址范围内。所谓内存重叠就是拷贝的目的地址和源地址有重叠。在函数strcpy和函数memcpy都没有对内存重叠做处理的,使用这两个函数的时候只有程序员自己保证源地址和目标地址不重叠。使用memmove函数可解决内存重叠问题。memmove函数对内存重叠做了处理。重叠从两方面考虑:(1).dest数据覆盖了source; 如:dest(8byte) 地址:1000sour...转载 2018-04-04 12:00:40 · 3307 阅读 · 0 评论 -
在C++类的构造中调用this指针,会有警告?
以前面试的时候,被问到一个问题:在C++类的构造函数中调用this指针,为什么会有警告?我在vs2017中测试了一下,并没有发现警告!! 还可以正常的给类成员变量赋值。疑惑!!...原创 2018-04-04 11:48:56 · 692 阅读 · 2 评论 -
C++类中this指针的含义
有下面的一个简单的类:class CNullPointCall{public: static void Test1(); void Test2(); void Test3(int iTest); void Test4();private: static int m_iStatic; int m_iTest;};int CNullPointCall::m_iSta...转载 2018-04-04 11:44:29 · 1170 阅读 · 0 评论 -
16位的MD5加密和32位MD5加密的区别
MD5加密后所得到的通常是32位的编码,而在不少地方会用到16位的编码它们有什么区别呢?16位加密就是从32位MD5散列中把中间16位提取出来!其实破解16位MD5散列要比破解32位MD5散列还慢因为他多了一个步骤,就是使用32位加密后再把中间16位提取出来, 然后再进行对比而破解32位的则不需要,加密后直接对比就可以了admin 的加密代码:16位加密:7a57a5a743894a0e32位加密...转载 2018-04-10 14:35:09 · 3103 阅读 · 0 评论 -
空类对象的sizeof 大小为1
空类对象的sizeof 大小为1空结构体对象的sizeof 大小也为1为什么?深度探索c++对象模型中是这样说的: 那是被编译器插进去的一个char ,使得这个class的不同实体(object)在内存中配置独一无二的地址。 也就是说这个char是用来标识类的不同对象的 这就是我们刚才所说的实例化的原因(空类同样可以被实例化),每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会...原创 2018-04-08 18:11:07 · 1101 阅读 · 0 评论 -
VC精确计时
1、WM_TIMER消息映射SetTimer()设置定时间隔,定时响应函数 OnTimer()计时精度30ms,定时器消息在多任务操作系统中的优先级很低,不能得到及时响应。2、sleep()函数计时精度30ms,CPU占用率高,延时期间不能处理其他的消息。3、COleDateTime类和COleDateTimeSpan类结合WINDOWS的消息处理过程计时精度秒级原创 2012-05-22 09:55:13 · 5186 阅读 · 0 评论 -
CString CPoint CRect CSize的定义(不明确的符号)
VS程序在编译时报错:CString不明确的符号、CPoint不明确的符号、CRect不明确的符号、CSize不明确的符号。 WTL提供了CString,CRect,CPoint和CSize,后来版本的ATL也提供了,WTL作者推荐使用ATL的实现,所以: #include // CString#include // CRect,CPoint,CSize注意,这两行必须放在原创 2017-02-06 18:05:07 · 4087 阅读 · 1 评论 -
动态链接库dll,静态链接库lib, 导入库lib
动态链接库和静态链接库 2010-09-01 23:05:18| 分类:VC/C++ | 标签:|举报|字号大中小 订阅动态链接库dll,静态链接库lib, 导入库lib目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Li转载 2014-01-17 15:07:22 · 879 阅读 · 0 评论 -
C++中获取操作系统的名称和版本名称
//读取操作系统的名称void GetSystemName(CString& osname){ SYSTEM_INFO info; //用SYSTEM_INFO结构判断64位AMD处理器 GetSystemInfo(&info); //调用GetSystemInfo函数填充结构 OSVERSIONINFOEX os; os.dwOSVersionI原创 2013-01-30 16:17:19 · 16988 阅读 · 1 评论 -
VC获取某文件的版本号
//lpszFilePath 为某文件的完整路径CString GetFileVersion(LPCTSTR lpszFilePath){ CString szFilePath(lpszFilePath); CString szResult(_T("0.0.0.0")); if (szFilePath.GetLength() > 0 && PathFileExists(szFi原创 2013-01-30 16:57:43 · 3263 阅读 · 0 评论 -
使用SetupDi系列函数进行设备信息的管理
一、重要函数: 头文件setupapi.h1、SetupDiGetClassDevs 获取一个指定类别或全部类别的所有已安装设备的信息2、SetupDiEnumDeviceInfo 枚举指定设备信息集合的成员,并将数据放在PSP_DEVINFO_DATA中3、SetupDiGetDeviceRegistryProperty 获得单个设备的详细信息4、SetupDiD原创 2012-12-27 09:32:24 · 2332 阅读 · 0 评论 -
在资源管理器右键菜单中添加新的菜单项
一、原理关联自己的应用程序到右键菜单中,当用户在“我的电脑”或“资源管理器”中的某一文件上单击鼠标右键时会出现一个快捷菜单。假设用户希望在txt文件类型的右键快捷菜单中关联上自己的应用程序 (用户的应用程序名为 txtapp.exe,在D盘根目录下) ,步骤如下: 1、在注册表中找到并打开 HKEY_CLASSES_ROOT\.txt子键,查到其默认键值项数据为“txtfile”原创 2013-01-09 17:26:37 · 3806 阅读 · 0 评论 -
fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏(嵌入清单)
在将一VC6程序转换至VS2005时,出现了错误:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏;研究发现是由于VS2005生成清单文件的问题。 VS2005在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是XML文档,你可以用文本编辑器原创 2013-01-23 11:44:39 · 5538 阅读 · 0 评论 -
对于CDHtmlDialog和JavaScript、HTML配合使用的一些技术总结
CDHtmlDialog可以方便的将网页嵌入对话框,使得在程序设计中人机界面(DHTML网页)与控制逻辑(CDialog)可以很好的分离。 1、屏蔽安全性提示,不再弹出控件是否安全的提示框。重载CanAccessExternal()函数,直接 return TRUE;头文件中:virtual BOOL CanAccessExternal();.cpp中:BOOL CBase原创 2012-07-04 09:18:03 · 7581 阅读 · 0 评论 -
CTime,COleDateTime,SYSTEMTIME
1、使用CTime (MFC)1) 获取当前时间。 CTime time; time = CTime::GetCurrentTime();2) 获取时间元素。 int year = time.GetYear() ; int month = time.GetMonth(); int day = time.GetDay(原创 2012-06-19 17:11:53 · 5087 阅读 · 0 评论 -
CComPtr用法
COM接口指针很危险,因为使用过程中需要每一个使用者都要严格并且正确的AddRef和Release,一旦出现问题,就会造成对象不能被正常释放,或者对象被重复删除,造成程序崩溃。所以使用COM接口,必须小心翼翼才行。但是,即使所有的代码中,都正确的AddRef和Release,也不一定能保证万无一失,例如:void SomeApp( IHello * pHello ){IHello*转载 2012-07-04 09:05:43 · 835 阅读 · 0 评论 -
根据UNICODE码判断是否为汉字
1、使用函数IsTextUnicode判断当前字符串是否为UNICODE编码BOOL b = IsTextUnicode(csTmp,csTmp.GetLength(),NULL);2、根据UNICODE码判断是否为汉字CString szWords(_T("test测试字体"));CString szTmp;for( ; iCur {szTmp = szWords.M原创 2012-05-11 17:41:44 · 1318 阅读 · 0 评论 -
彩色转灰度
一、基础 对于彩色转灰度,有一个很著名的心理学公式:Gray = R*0.299 + G*0.587 + B*0.114二、整数算法 而实际应用时,希望避免低速的浮点运算,所以需要整数算法。 注意到系数都是3位精度的没有,我们可以将它们缩放1000倍来实现整数运算算法:Gray = (R*299 + G*587 + B*114 + 500) / 1000 RGB转载 2012-04-09 09:31:14 · 828 阅读 · 0 评论 -
C++类中,explicit构造函数,抑制隐式转换
按照默认规定,C++类中,若构造函数只有一个参数,则其有一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象。如下面所示:class String {String ( const char* p ); //用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”);转载 2013-01-30 15:58:02 · 684 阅读 · 0 评论 -
CDHtmlDialog中阻止某页面的显示
.h文件中:DECLARE_EVENTSINK_MAP()void XOnBeforeNavigate2(LPDISPATCH pDisp, VARIANT FAR* URL, VARIANT FAR* Flags, VARIANT FAR* TargetFrameName, VARIANT FAR* PostData原创 2013-03-11 10:54:11 · 1495 阅读 · 0 评论 -
vc资源中的DLL,保存到磁盘
bool ReleaseDll(int dllID, LPCTSTR lpDllPathFileName) //lpDllPathFileName为完整路径 { DWORD dwWritten = 0; HMODULE hInstance = ::GetModuleHandle(NULL); // Find the binary file in resources HRSRC原创 2014-01-17 14:02:36 · 979 阅读 · 0 评论 -
动态调用DLL. LoadLibrary和GetProcAddress
动态引入方式就是使用Windows的两个API即LoadLibrary和GetProcAddress,前者用于获得DLL的句柄,后者用于获得DLL中例程的地址,这种方式之所以被称为动态的,是因为它不需要在程序的开始处把要引入的例程全部列出,只要在调用前引入,并且LoadLibrary可以指定不同的DLL,GetProcAddress可以指定不同的例程,最重要的是如果指定的DLL出错,最多是API调转载 2014-01-17 14:27:28 · 14942 阅读 · 1 评论