自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 windows上获取系统时间

一、 通过time_t和tmstruct tm{ int tm_sec; // seconds after the minute - [0, 60] including leap second int tm_min; // minutes after the hour - [0, 59] int tm_hour; // hours since midnight - [0, 23] int tm_mday; // day of the month - [..

2021-05-18 15:41:24 1795 2

原创 win32 创建一个透明窗口

#pragma once#include "stdafx.h"#include "resource.h"class TransparentWnd{public: TransparentWnd(); ~TransparentWnd(); BOOL Create(__in DWORD dwExStyle, __in_opt LPCWSTR lpWindowName, __in DWORD dwStyle, __in int X, __in int Y, __in int nWidth.

2021-05-12 17:05:08 3017 1

原创 NSSecureTextField 内容垂直居中

同NSTextField一样,NSSecureTextField有一个NSSecureTextFieldCell,因此实现NSSecureTextField内容的垂直居中,可以从NSSecureTextFieldCell下手。代码://// VerticalSecureTextFieldCell.h//// Created by liyuye.//#import <Cocoa/Cocoa.h>NS_ASSUME_NONNULL_BEGIN@interface V

2021-01-27 11:54:28 283

原创 NSTextField 实现垂直居中

NSTextField里面有一个NSTextFieldCell,因此NSTextField实现内容垂直居中,主要是实现NSTextFieldCell内容的居中。代码如下://// VerticalTextFieldCell.h//// Created by liyuye.//#import <Cocoa/Cocoa.h>NS_ASSUME_NONNULL_BEGIN@interface VerticalTextFieldCell : NSTextFieldCell

2021-01-27 11:42:49 1103 1

原创 选择打包工具Wix Toolset

1. InstallerProject,是VS集成的一个打包工具,需要下载组件,我用的是这个:https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017InstallerProjectsInstallerProject功能比较简单,有时候无法满足所有的安装需求。例如,在安装完成后想添加一个启动APP,但是安装界面上没有合适的button或者复选框(也许有,我找不到

2020-10-19 15:02:36 1408

原创 用DirectX显示video时加边框

1、是给每帧图像加一个边框, 显示出来的视频的每一帧上下左右的几个像素都被填充的颜色覆盖掉了。HRESULT Demo::ShowVideo(D3DFORMAT Format, BYTE * image, int width, int height, int borderWidth){ HRESULT hr; int resizeYuvW = width; int resizeYuvH = height; // 锁定 swap-chain 表面. D3DLOCKED_RECT lr;

2020-07-16 14:57:47 434

原创 win32 捕获锁屏消息

1. 注册,一般在创建窗口的时候调用注册,销毁窗口的时候反注册。BOOLWINAPIWTSRegisterSessionNotification( HWND hWnd, DWORD dwFlags );BOOLWINAPIWTSUnRegisterSessionNotification( HWND hWnd );2.在消息循环中添加对WM_WTSSESSION_CHANGE消息的处理.我是这样用的:LRESULT Demo::WndP

2020-06-23 15:42:55 1088

原创 win32 实现滚屏的两种方式

代码实现的优点粗燥,思路是这么个思路。方法1. 在timer里面每次重画窗口LRESULT Demo::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ switch (message) { case WM_PAINT: { PAINTSTRUCT ps; RECT r; HDC hdc = BeginPaint(hWnd, &ps); HFONT hFont, hOldFont;

2020-06-19 17:49:27 382

原创 多字节与宽字符(Wide character& Mutilbyte character)

1. 什么是多字节,宽字符?起初,C语言在设计的时候,英文用一个字节(8位)就能编码,但是随着字符数量越来越庞大,无法使用一个字节进行编码。于是出现了两种表示字符集的方法:(1)宽字符(每个字符使用相同的位长,也就是所有的字符占用相同的字节个数) (2)多字节字符(每个字符可以是一个或者多个字节)2.常见的字符集一般有ASCII字符集、GB2312字符集、BIG5字符集、...

2020-06-19 16:58:13 394

原创 合并模拟器和真机调试的静态库

分别编译模拟器和真机下面的静态库,然后具体的合并过程如下:打开终端,命令如下注意:切换模拟器和真机的时候,一定要清理一下工程,否则容易出错...

2016-03-28 20:26:39 334

原创 MFC ado 连接sql server提示未知错误

代码跟进去,发现CreateInstance返回值是空的。找了下原因:首先,环境如下:开发机:win7   msado15.dll的版本:6.1.7601.17514测试机1:xp    msado15.dll的版本:2.81.3007.0测试机2:xp    msado15.dll的版本:2.81.3012.0开发时用#import "c:\program

2016-03-28 20:20:45 1600

原创 复制一个Dialog后DoModal()返回-1

有一个对话框IDD_Sign,对应一个类CSign。我想再做一个IDD_Sign_Other对话框,调用CSign类的时候,根据不同条件分别加载这两个对话框。修改CSign的构造函数CSign(BOOL bOther, CWnd *pParent):CDialog(bOther?IDD_Sign_Other:IDD_Sign, NULL){....}直接在资源里面复制IDD

2015-08-16 21:43:57 2177

原创 自己构造一个Tree类,当鼠标移动到树的节点上的时候用提示框显示该节点的信息

新建一个类CMyTree继承自CTreeCtrlMyTree.h中添加函数声明:afx_msg BOOL OnToolTipText(UNIT id, NMHDR *pNMHDR, LRESULT *pResult);virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO *pTI) const;在MyTree.cpp中

2015-07-21 14:35:33 1499

原创 DoModal出来的窗口往主窗口发送消息

假设要DoModal的窗口类为CSubDlg,调用DoModal的窗口为CDlg。在SubDlg.h中添加一个成员变量和一个函数HWND hParentWnd;void SetParent(HWND hWnd);在SubDlg.cpp中添加 SetParent(HWND hWnd) 函数的实现,将hWnd赋给hParentWnd。 在CDlg.cpp中这样调用:

2015-07-21 11:44:55 1167

原创 ADO GetCollect(“FILE”)时catch到 Idispatch error #3105

这是开发中遇到的一个问题,还没有解决,搞了两天了,没有找到原因。。。MFC用ado操作SQL Server数据库,读取数据的时候,有一个字段是IMAGE存储的,用智能指针,GetCollect(“FILE”)会出现RunTimeerror,catch出来的错误描述是:多步OLE DB操作产生错误,如果可能,请检查每个OLEDB状态值,没有工作完成。错误信息是IDispatch error #3

2015-04-21 16:36:08 2027

原创 callback函数

今天面试的时候被问到了CallBack函数,回来整理一下。这是从百度百科看来的,还是不太明白,先这样吧,我有时间去翻翻书再写。回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响

2013-11-14 21:32:26 669

原创 有1,2,5三种数字组成100的组合的个数,如20个5,19个5和5个1。编程实现。

1、直接算,先看20个5,然后减少5的个数,添加2的个数和1的个数#include using namespace std;int main(void){ int count=0; for(int i=20;i>=0;i--){ for(int j=50;j>=0;j--){ for(int k=100;k>=0;k--){ if((5*i+2*j+k)==10

2013-11-10 17:12:20 1406

原创 大端序小端序

最近遇上好几次关于大端序、小端序的问题,记混了,想了好半天,得亏写对了 。今天总结一下,希望记住了。大端序:数据的高位保存在内存的低地址中,而数据的低位,保存在内存的高地址中小端序:数据的高位保存在内存的高地址中,而数据的低位,保存在内存的低地址中测试编译器是大端序还是小端序的代码:#include using namespace std;int main(void){

2013-11-01 19:54:04 757

原创 Deque(双向队列)

一、Deque是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元素的开销很小。它不需要重新分配空间,所以向末端增加元素比vector 更有效。实际上,deque 是对vector 和list 优缺点

2013-10-02 23:27:05 725

原创 List (双向链表)

参考:http://www.360doc.com/content/11/0526/14/2150347_119530996.shtml一、List是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个信息块(即实际存储的数据)、一个前驱指针和一个后驱指针。它无需分配指定的内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中,并且由指针将有序的元素链接起来。由于其结构的原因

2013-10-02 19:53:24 781

原创 Vector(向量容器)

Vector是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组。一、在创建一个vector 后,它会自动在内存中分配一块连续的内存空间进行数据存储,初始的空间大小可以预先指定也可以由vector 默认指定,这个大小即capacity ()函数的返回值。当存储的数据超过分配的空间时vector 会重新

2013-10-01 20:34:09 1053

原创 主定理

今天看算法,发现根据递推式计算时间复杂度的时候,有个 主定理 可以用百度了一下,以下是主定理的两种表达方式:表达一:表达二:

2013-09-27 22:46:37 1292

原创 MFC对多线程编程的支持

MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的,它们都只需

2013-09-26 22:12:47 691

转载 strcpy和memcpy的区别

strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。

2013-09-26 19:44:27 532

原创 c# using和new的意义

using 的作用:1、引用命名空间。2、为命名空间或类型创建别名。3、使用using语句。 new的作用:1、new 实例化一个对像,2、修饰一个方法,使用 new 修饰符显式隐藏从基类继承的成员

2013-09-24 10:33:13 987

转载 装箱和拆箱

原文地址:http://blog.csdn.net/gongth_12/article/details/92494911、      装箱和拆箱是一个抽象的概念 2、      装箱是将值类型转换为引用类型 ;拆箱是将引用类型转换为值类型       利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的值相互转换,将值类型与引用类型链接起来例如: in

2013-09-24 08:46:30 589

原创 n*n的网格,从左上角到右下角有多少条线路

1个2*2的网格,从左上角到右下角有6条线路(不可回头),如图所示请问,一个n*n的网格,从左上角到右下角有多少条线路。方法一、把网格看做二维坐标,向下为正,向右为正:设f(m,n)代表从坐标(0,0)到坐标(m,n)的移动方法,则f(m,n)=f(m-1,n)+f(m,n-1)开始为f(0,0)=0,f(0,1)=1,f(1,0)=1

2013-09-14 14:11:40 6138 2

转载 c++笔试题汇总

原文地址:http://blog.csdn.net/dongfengsun/article/details/1541926  ①链表反转单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下

2013-09-12 23:17:33 717

转载 深入理解C++的动态绑定和静态绑定

原文地址:http://blog.csdn.net/chgaowei/article/details/6427731 (一起感谢博主吧!)为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在

2013-09-08 20:04:53 637

原创 设计模式总结

最近看了下设计模式我就只记录下23中设计模式的名字吧(内容太长了。。。还没时间总结)1、创建型模式工厂模式、抽象工厂模式、单例模式、生成器模式、原型模式2、构造型模式桥接模式、适配器模式、装饰模式、组合模式、亨元模式、外观模式、代理模式3、行为型模式模板方法模式、策略模式、状态模式、观察者模式、备忘录模式、命令模式、访问者模式、责任链模式、迭代器模式、解析器模式、中介者

2013-08-31 18:25:39 487

原创 面向对象设计的六大原则

(本文参考:《您的设计模式》CBF4LIFE 2009 年5 月http://www.cnblogs.com/cbf4life/archive/2009/12/15/1624435.html)1、单一职责原则 Single Responsibility Principle就是要求“仅有一个原因引起类的变更”,个人理解就是接口或者抽象类尽量只实现一类功能2、里氏替换原则 Lisk

2013-08-31 18:17:50 980

原创 虚函数与非虚函数在父类、子类之间的调用

#include using namespace std;class A{public: A(){ cout<<"A"<<endl; } ~A(){} virtual void func1() { cout<<"only in A"<<endl; } virtual void func2() { cout<<"virtual in A"<<endl; }

2013-07-28 21:58:10 4616

原创 mfc tabcontrol里面dialog里面的editbox不能响应编辑

建立了一个mfc的基于单文档的应用程序,在里面添加了一个tabcontrol,tabcontrol里面添加了dialog,dialog里面有一个editbox,程序运行的时候,editbox不能响应编辑,但是能响应鼠标的操作,例如复制、粘贴什么的。查了资料,说是tabcontrol的父窗口的style如果是child,那么tabcontrol里面的dialog里面的editbox就不能响应编辑。

2013-07-24 21:51:03 1076

原创 sizeof和strlen

1、sizeof计算栈中分配的大小,静态变量static是存放在全局数据区的,是不会计算在内的2、sizeof不是函数,也不是一元运算符,它是个类似宏定义的特殊关键字,sizeof()。括号内的内容在编译过程中是不被编译的,而是被替代类型,如int a=8; sizeof(a)。在编译过程中不管a是什么值,只是被替换成类型sizeof(int),结果为4。如果是sizeof

2013-07-19 20:12:31 568

转载 main WinMain入口函数比较

本文是转载,原文地址http://blog.csdn.net/jackalfly/article/details/8235225C/C++语言中的main函数, 经常带有参数argc, argv, 如下:int main(int argc, char** argv)int main(int argc, char* argv[]) //也可以是wchar_t 或 tchar

2013-07-15 21:54:19 1136

原创 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup

我用vs2008建立了一个 win32 应用程序  空项目,添加了一个cpp文件,内容如下:#include#includeusing namespace std;int main(){ string s; cin>>s; cout<<s<<endl; return 0;}出现问题:1>MSVCRTD.lib(crtexew.obj) : error LNK2019

2013-07-15 21:29:22 1085

原创 vs2008+WDK+ddkwizard

参考:http://bbs.pediy.com/showthread.php?t=69395http://blog.csdn.net/wqvbjhc/article/details/5112134http://wjcsharp.blog.51cto.com/1031016/391769/我开始装了DDK,编译也成功,就是没有sys文件,没有找到原因。。。后来

2013-07-09 11:20:40 736

原创 socket编程

一、套接字相关1、socket是一种应用程序访问通信协议的操作系统调用2、socket存在于通信区域中,通信区域也叫地址族,主要用于将通过socket通信的进程的共有特性综合在一起。socket通常只与同一区域的套接字交换数据。3、windows socket只支持一个通信区域:网际域(AF_INET),这个域被使用网际协议簇通信的进程使用。二、套接字的类型1、流式

2013-07-08 11:52:18 662

原创 linux超级用户口令怎设置

这是ubuntu上的方法:先解除root锁定,为root用户设置密码 打开终端输入:sudo passwd Password: Enter new UNIX password: Retype new UNIX password: passwd:已成功更新密码 2、更改登陆,允许root登录

2013-07-08 11:50:05 1232

原创 C++中初始化列表

1.初始化列表:       与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。struct foo {      string name ;      int id ;      foo(string s, int i):name(s), id(i){} ; // 初始化列表};

2013-07-08 11:48:56 1018

ios实现搜索

iphone开发基础教程 第八章 搜索栏

2012-06-25

空空如也

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

TA关注的人

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