C++
文章平均质量分 60
llC2018
每天积累,每天进步,让青春更精彩!
展开
-
加载mysql lib C++
\mysql\mysql_com.h(320) : error C2146: 语法错误 : 缺少“;”(在标识符“fd”的前面)解决方案:原创 2018-01-04 09:21:48 · 754 阅读 · 0 评论 -
GDI+ 保存图片jpeg压缩
int GetEncoderClsid(const WCHAR* format, CLSID* pClsid) { UINT num = 0; UINT size = 0; ImageCodecInfo* pImageCodecInfo = NULL; GetImageEncodersSize(&num, &size); if(size == 0...原创 2018-05-30 18:43:25 · 1222 阅读 · 0 评论 -
多线程之信号量 Samephore
信号量相当于一个计数器,记录一个共享资源被访问线程的个数;好比有两个或者更多个办事窗口,他们都做同一件事;假设有5个窗口,五个窗口都没人访问的时候计数器为5;有一个窗口被占用计数器减1,为4;全部被占用则计数器为0;这时候其他人想要访问就必须等待占用结束后计数器加1;HANDLE WINAPI CreateSemaphore( __in LPSECURITY_ATTR...原创 2018-10-23 15:22:53 · 1044 阅读 · 0 评论 -
C++ 获取文件时间问题
一、方法1FileTime与Systime 的定义1. typedef struct _FILETIME { 2. DWORD dwLowDateTime; 3. DWORD dwHighDateTime; 4. } FILETIME, *PFILETIME; 5. t...原创 2018-11-04 21:59:45 · 3180 阅读 · 0 评论 -
记句柄泄漏
SHGetFileInfo函数介绍https://baike.baidu.com/item/SHGetFileInfo用来获取系统图标,一定要记得用完释放,否则就会出现句柄泄漏; SHFILEINFO sfi = { 0 }; DWORD_PTR dwRet = SHGetFileInfo((LPCWSTR)m_shellPath.DataBuf, 0, &sfi,...原创 2019-03-04 22:52:37 · 275 阅读 · 0 评论 -
父类与子类的成员变量使用时到底以哪一个值为准
Java 中这个题的答案为40, 就测试了一下C++Java 是以定义时的类型为准, parentClass 定义时为 ParentClass 虽然 new 了 SubClass对象;但是使用时成员变量 i 的值仍然为10;C++ 也是如此:#include "stdafx.h"#include <Windows.h>#include <iostream...原创 2019-05-20 20:22:15 · 537 阅读 · 0 评论 -
DuiLib VirtualListUI 虚拟列表
思路:修改ListBody ,重写SetPos, SetScrollPos, ProcessScrollBar, 利用 SetScrollPos 滚动条位置动态从数据接口获取数据并加载到列表, 重新设置位置; 需要增加一个数据提供者纯虚类IVirtualDataProvider; 关键点就是SetPos, SetScrollPos, ProcessScrollBar这三个函数的重写,控制需...原创 2019-05-22 19:14:50 · 2386 阅读 · 14 评论 -
剪切板操作 复制,剪切
CopyFile.h: #pragma once#include <list>#include <map>#include <string>#include <xstring>#include <concrt.h>#include <ShlObj.h>using namespace std;class...原创 2019-05-29 22:07:42 · 689 阅读 · 0 评论 -
访问远程主机共享文件夹
/******************'********************************************* *函 数 名: ConnectShareDir *参 数: TCHAR tcUserName[], 远程登录用户名 TCHAR tcUserPwd[], 远程登录密码 ...原创 2018-05-25 11:24:39 · 5465 阅读 · 0 评论 -
交换函数swap学习
模板函数C++ utility standard header精髓template<class _Ty> inline void swap(_Ty& _Left, _Ty& _Right) { // exchange values stored at _Left and _Right if (&_Left != &_Right) { // di...原创 2018-05-07 15:06:37 · 337 阅读 · 0 评论 -
C++ 函数模板,类模板初步认识
一、函数模板1、几个功能相同的函数,比如都是两个数相加,只是参数类型不同(float+float; int+int等)就可以用一个模板函数,简化代码;2、模板定义:语法:template 函数返回值 函数名称 (参数列表){函数体}或者template 函数返回值 函数名称 (参数列表){函数体}例如://函数模板 template //t原创 2018-01-05 15:19:25 · 318 阅读 · 0 评论 -
获取程序运行目录
获取运行exe的文件路径:const TCHAR* GetAppPath(__inout LPTSTR lpOut, __in const DWORD nSize) { TCHAR szBuf[MAX_PATH] = { 0 }; ZeroMemory(szBuf, sizeof(szBuf)); assert(NULL != lpOut); if (NULL !原创 2018-01-19 10:50:38 · 1103 阅读 · 0 评论 -
duilib List 动态添加
一、为什么需要动态添加?由于我不知道我的List头的项目到底是哪些,我的List中有多少行数据需要添加,动态添加就比较合适,方便。二、实现1、Xml配置 <HorizontalLayout name="ListContainer" height="450"> <!-- <List name="ShowList" float="true" pos=...原创 2018-02-06 10:01:01 · 8599 阅读 · 20 评论 -
C++ 线程同步之临界区CRITICAL_SECTION
一、临界区临界区又称关键代码段,指的是一小段代码在代码执行前,他需要独占一些资源。程序中通常将多线程同时访问的某个资源作为临界区,需要定义一个CRITICAL_SECTION类型的变量,然后调用InitializeCriticalSection函数对变量进行初始化;函数声明:VOID InitializeCriticalSection(LPCRITICAL_SECTION lpCri...原创 2018-03-22 19:01:34 · 16534 阅读 · 3 评论 -
C++ 线程同步互斥量Mutex
一、互斥对象 互斥对象属于系统内核对象,它能够使线程拥有对某个资源的绝对访问权。互斥对象主要包含使用数量、线程ID、递归计数器等。线程ID表示当前拥有互斥对象的线程,递归计数器表示线程拥有互斥对象的次数。 1、当互斥对象的线程ID为0时,表示互斥对象不被任何线程所拥有,此时系统会发出该互斥对象的通知信号,等待该互斥对象的其他线程中的某一个线程会拥有该互斥对象,同时,互斥...原创 2018-03-23 10:03:26 · 413 阅读 · 0 评论 -
C++ 线程同步 event事件
一、线程 线程是指进程内的一个执行单元,也是进程内的可调度实体;当进程启动的同时启动了一个线程,叫做主线程或者执行线程;一个进程可以有多个线程,每个线程都共享进程的地址空间,并且共享进程地址空间内的资源和各种数据;每个线程都占用CPU份额,也就是CPU的时间,线程就是数据在CPU上运行,是个动作。线程可以创建子线程。主线程退出,主线程下的所有子线程都失效,主线程所在进程也被系统撤销,地址空间...原创 2018-03-22 13:43:26 · 2704 阅读 · 1 评论 -
从两个顺序的字符串中寻找最大公共子串
int GetMaxComSTR(const char *s, const char *t, int *length){ int i = 0; int j = 0; int k = 0; int tmp_len = 0; int condition = 0; int index = 0; *length = -1; while(i<strlen(s)) { j = ...原创 2018-03-26 19:37:10 · 1666 阅读 · 0 评论 -
C++ 编译调试看多态实现原理
C++多态实现原理探究 多态:是子类对象的地址赋值给父类指针,接收同一消息运行时产生不同方式的响应;//有虚函数的类Aclass A{ virtual void fun() { };};//有虚函数的类Cclass C{ virtual void test() { };};//继承A和C的类B 多继承class B: public A, public C{};...原创 2018-04-11 17:08:39 · 331 阅读 · 0 评论 -
C++ IDropSource,IDataObject,IDropTarget 文件从自己窗口拖到其他窗口操作
为了实现将自己窗口中的文件,或者文件夹从自己本身的客户端窗口拖动到其他的客户端窗口,或者系统窗口中实现系统的拖动效果;需要对系统接口 IDropSource,IDataObject,IDropTarget 重写代码如下:IDropSource,IDataObject,IDropTarget 重写头文件// IDataObjectImpl.h: interface for the CI...原创 2019-08-04 21:10:50 · 2141 阅读 · 6 评论