随笔分类 - c++
摘要:转自:http://www.cnblogs.com/zplutor/archive/2010/11/27/1889227.html在我刚开始学C/C++的时候,字符类型使用的都是char。接触Win32编程之后,养成了使用wchar_t的习惯,于是再写控制台程序的时候自然就使用wchar_t了。然而在控制台程序中使用宽字符会导致各种奇怪的问题,这些问题主要是在输出上。下面分享一下我在这方面的心得。首先来看一下这段代码:#includeintmain() { wprintf(L"%s", L"博客园");return0;}wprintf用于输出宽字符类型的
阅读全文
摘要:转自:http://blog.csdn.net/ntwilford/article/details/5656633从Windows Vista开始,Aero Glass效果被应用在了Home Premium以上的系统中(Home Basic不具有该效果)。这种效果是由DWM(Desktop Window Manager)来控制的。对于一般的程序,缺省将在窗口边框应用这种效果。但如果我们想要更多的控制,比如让客户区的一部分也呈现这种效果,那也非常的简单。不需要我们在程序里做任何复杂的算法,我们只需要调API,交给DWM去做就可以了。一、Composition(窗口合成) and Non-clie
阅读全文
摘要:SetWindowLong(hwnd,GWL_EXSTYLE,GetWindowLong(hwnd,GWL_EXSTYLE)|WS_EX_LAYERED); SetLayeredWindowAttributes(hwnd,0,(255*70)/150,LWA_ALPHA); 项目图.rar
阅读全文
摘要:转自:http://www.cnblogs.com/kevinGao/archive/2012/01/29/2336483.html一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。这样问题就来了,一般画图都是先画背景色,然后再把内容画上去,如果这两次操作不在同一个刷新周期内完成,那么
阅读全文
摘要:转自:http://blog.csdn.net/fancycow/article/details/66760641.SetTimer(HWND,UINT,UINT,TIMERPROC);第一个参数设置为捕获该定时消息的窗口句柄, 第二个参数是定时器的id,第三个是以毫秒为单位的定时长度,最后一个参数设置为NULL,可以使窗口的回调函数进行处理WM_TIMER消息。一般来说,在窗口创建时进行SetTimer调用;在回调函数中添加WM_TIMER的响应。然后再窗口销毁的时候进行计时器的销毁:KillTimer(HWND,UINT);参数分别是窗口句柄和定时器ID。2.SetTimer(HWND,U
阅读全文
摘要:int (* xyDataP)[40];(*xyData)[i*2]
阅读全文
摘要:[DllImport("ScreenCaptureLib.dll", CallingConvention = CallingConvention.Cdecl)] public static extern void Init(); [DllImport("ScreenCaptureLib.dll", CallingConvention = CallingConvention.Cdecl)] public static extern int ScreenCapture(IntPtr img);C#调用应该尽量避免用引用型的数组传递,因为c#...
阅读全文
摘要:((GPIO_TypeDef *) 0x0400)
阅读全文
摘要:转自:http://blog.csdn.net/wgwg1985/article/details/6989288在windows开发过程中需要查看一些已有的exe或dll的信息,例如exe调用了哪些dll,dll又有哪些导出函数等。找到了一些比较实用的工具,在这里总结一下:1. Dependency Walker 这是VC6自带的一款工具,它可以查看exe程序调用了哪些dll,dll里包含了哪些函数,这个exe调用了该dll的哪些接口。比较通用的一款工具,但对部分exe程序,显示出来的dll信息不全。2. DebugApiSpy 这款工具在上篇博文中有记录,可以在exe运行过程中查看它具体调用
阅读全文
摘要:转自:http://blog.csdn.net/dengrk/article/details/1937430一. DUMPBIN 命令行Microsoft COFF 二进制文件转储器 (DUMPBIN.EXE) 显示有关 32 位通用对象文件格式 (COFF) 二进制文件的信息。可以使用 DUMPBIN 检查 COFF 对象文件、标准 COFF 对象库、可执行文件和动态链接库 (DLL)。(在VC Studio 目录下有dumpbin.exe工具,环境配置文件路径:visual Studio/VC98/Bin/VCVARS32.BAT,可放到命令提示符下运行。执行后,在其它的命令提示符下可执行
阅读全文
摘要:............心中要有一内存块,以便理解知识计算机储存数据必须知道数据的3种属性:1.存储在何处.......并起名2.值3.类型(1)int a;a=30;(2)int *b=&a;(3).int *a,b;注意...整型....指针a,整型...变量b,对每个指针都要有一个*; .......................指针..........................................1.指针是一个变量,存储的是...值的地址,而不是值本身,指针变量 是指向特定变量类型指针,和数组相似..int* tax;...............指向int
阅读全文
摘要:遍历速度插入删除速度随机访问速度备注Set快快慢比list多占一个指针的存储空间List快慢快必须之前知道数组元素个数,因为申请内存是连续长度明确的HashMap慢快快适合海量数据,o(1)的随机访问速度,不是可遍历变体Set快快快set的基础上多占一个List的控件,不过各种性能都好变体List快插入快不能删除快各种性能都好就是不能有删除操作变体Set:SetList,在SetList,保存一个状态(listEnable),调用get(index)方法时,如果listEnable=false,为该SetList简历一个List,用set元素填充List个元素,用List随机访问。如果list
阅读全文
摘要:转自:http://www.cnblogs.com/shiney/archive/2011/10/20/2219084.html造成LNK2005错误主要有以下几种情况:1.重复定义全局变量。可能存在两种情况:A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。正确的应该是在一个CPP文件中定义如下:int g_Test;那么在使用的CPP文件中就应该使用:extern int g_Test即可,如果还是使用int g_Test,那么就会产生LNK2005错误,一般错误错误信息类似:AAA.obj error LNK
阅读全文
摘要:#pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义。#pragma once是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上已经是每个编译器都有这个定义了。#ifndef,#define,#endif这个是C++语言相关,这是C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式
阅读全文
摘要:#include <stdio.h>#include <io.h>#include <FCNTL.H> AllocConsole(); //打开控制台窗口以显示调试信息 SetConsoleTitleA("Debug Win Output"); //设置标题 HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台输出句柄 INT hCrt = _open_osfhandle((INT)hCon, _O_TEXT); ...
阅读全文
摘要:http://stackoverflow.com/questions/6054300/how-to-attach-a-resource-file-to-an-existing-executable-fileAPI:BeginUpdateResourceUpdateResource
阅读全文
摘要:CreateCompatibleDC和CreateCompatibleBitmap用来创建兼容设备和位图,可以创建离屏表面,做完绘图操作再用BitBlt把数据拷贝到当前DC
阅读全文
摘要:转自:http://www.cnblogs.com/qytan36/archive/2010/09/27/1836569.html在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255,这个好理解,8个bit,最多256种情况,因此无论如何都能表示256个数字。在实际使用过程种有什么区别呢?主要是符号位
阅读全文
摘要:gdi截屏// TTTest.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "TTTest.h"#include <stdio.h>LPVOID screenCaptureData=NULL;HBITMAP hBitmap;HDC hDDC;HDC hCDC;int nWidth;int nHeight;void initGDI(){ // Get screen size nWidth = GetSystemMetrics(SM_CXSCREEN); nHeight = GetSystemMet
阅读全文

浙公网安备 33010602011771号