自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (22)
  • 收藏
  • 关注

转载 破解时常用汇编命令

基本上多数破解的思路是一样的,就是将本来判断为true的时候干的事情改为逻辑值为false就做,因此常常需要替换一些汇编命令:cmp a,b 比较a与bmov a,b 把b的值送给aret 返回主程序nop 无作用,英文“no operation”的简写,意思是“do nothing”(机器码90)***机器码的含义参看上面(解释:ultraedit打开编辑exe文件时你看

2017-04-21 09:17:34 575

转载 CreateMutex,WaitForSingleObject一定要在线程里面才阻塞?

int _tmain(int argc, _TCHAR* argv[]){ mutex = CreateMutex( NULL, FALSE, NULL ); WaitForSingleObject( mutex, INFINITE ); WaitForSingleObject( mutex, INFINITE ); printf("here"); return 0;}

2017-04-20 08:52:51 2111

原创 用户级线程同步互斥对象和内核级线程同步对象

事件确实可以严格控制每个线程的执行顺序,但大多数时候,每个线程都是一个单独的任务副本,即不存在说一定要先让线程A操作公共资源再让线程B操作,B先A后也可以,只要保证公共资源不被同时改写,能正确的读写就行了。因此大多数时候临界区就可以了,事件的开销要大很多。这个是的,用户级线程同步互斥对象和内核级线程同步对象所消费的资源相差还是有点大。事件和信号量一般在线程间

2017-04-19 14:25:09 459

原创 多线程的优缺点

很多编程人员都认为,使用多线程能够提升程序的性能,如果少量的线程能够提升程序的性能,他们就会认为更多的线程能够更好。但实际上,多线程只是为不同的程序比较合理地安排运行时间,更加充分的利用系统资源。这当中存在着一个线程数和程序性能的平衡,过多的线程可能会严重影响程序的性能。这种影响主要有以下两个方面:A:将给定的工作量划分给过多的线程会造成每个线程的工作量过少,因此可能导致线

2017-04-19 09:14:55 1460

转载 菜鸟始终不明白互斥对象和 WaitForSingleObject!

我正在学孙鑫老师的“利用互斥对象实现线程同步” 一节, 教材上如下写到:WaitForSingleObject(hMutex,INFINITE);hMutex 为已创建的 互斥对象的句柄,一旦互斥对象处于有信号状态,则该函数返回。如果互斥对象始终处于无信号状态,即未通知状态,则函数一直等待。我的问题是: 什么是“信号状态”,什么又是“无信号状态”?什么东西才有以

2017-04-17 14:02:34 741 1

转载 Activex、OLE、COM、OCX、DLL之间的区别(转)

熟悉面向对象编程和网络编程的人一定对ActiveX、OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多们还是比较模糊的。在具体介绍它们的关系之间,我们还是先明确组件(Component)和对象(Object)之间的区别。组件是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象(Rules Object)。组件看起来像对象,但不符合对象的学术定义

2015-09-12 15:17:52 1253

转载 转//视口与窗口

转自:http://topic.csdn.net/t/20021013/14/1092563.html 窗口,指的是一个虚拟的屏幕,基于逻辑坐标系统 视口,视图客户区域,基于设备坐标系统 设备坐标系统以像素为单位 VC中绘制图形时,先将图形以逻辑设备坐标绘制在窗口中,再把内容映射到视口中(以设备坐标进行转换),映射的基准就是

2015-05-06 09:01:50 460

转载 关于SetWindowOrgEx、SetViewportOrgEx、SetViewportExtEx 和SetWindowExtEx 详解

关于SetWindowOrgEx、SetViewportOrgEx、SetViewportExtEx 和SetWindowExtEx 详解 1、  SetWindowOrgEx是设置窗口的原点坐标。 例如:         Ellipse(hdc,-100,-100,100,100);         MoveToEx(hdc,-200,0,NULL

2015-05-05 22:15:57 1132

转载 Attach、Detach和DeleteObject

1.CWnd Attatch和Detach的关系            首先,要明白Windows对象和MFC对象的区别。MFC对象实际上并没有把整个Windows对象都包装在其中,它只是有一个窗口句柄而已,这个窗口 句柄如果指向一个实际存在的窗口对象(窗口对象,也就是WNDCLASS,是一个Windows对象),那么这个MFC对象就是有效的,否则这个MFC对 象是空的。如果你还不明白,请

2015-05-04 19:16:49 461

原创 PolyBezier 曲线

1 定义全局变量static POINT pt[4];  //存储贝塞尔曲线的四个点2 消息处理case WM_PAINT:hdc = BeginPaint(hWnd, &ps);// TODO: 在此添加任意绘图代码...PolyBezier(hdc,pt,4);MoveToEx(hdc,pt[0].x,pt[0].y,NULL);Li

2015-05-04 16:44:30 604

原创 Arc函数使用说明

BOOL Arc(  HDC hdc,         // handle to device context  int nLeftRect,   // x-coord of rectangle's upper-left corner  int nTopRect,    // y-coord of rectangle's upper-left corner  int nRightR

2015-05-03 19:41:50 9789

原创 SaveDC RestoreDC 使用方法

case WM_PAINT:hdc = BeginPaint(hWnd, &ps);// TODO: 在此添加任意绘图代码... SaveDC(hdc);                             //保存设备DC SelectObject(hdc,(HBRUSH)(CreateSolidBrush(RGB(100,255,255))));

2015-05-03 18:08:58 905

原创 窗口类的 CS_OWNDC 类型

MSDN上有这么一段:Classes and Device ContextsA device context is a special set of values that applications use for drawing in the client area of their windows. The system requires a device context for ea

2015-05-03 16:58:44 1329

原创 BeginPaint 和GetDC的区别

Windows程序还可以在处理非WM_PAINT消息时取得设备内容句柄:hdc = GetDC (hwnd) ;其它行程序ReleaseDC (hwnd, hdc) ;这个设备内容适用于窗口句柄为hwnd的显示区域。这些呼叫与BeginPaint和EndPaint的组合之间的基本区别是,利用从GetDC传回的句柄可以在整个显示区域上绘图。当然,GetDC和Relea

2015-05-03 11:04:38 517

原创 win32 中关于ScrollWindow函数的应用

1.SetScrollInfo 函数的说明:si.cbSize = sizeof(SCROLLINFO);si.cbMask = SIF_RANGE | SIF_PAGE;si.nMin = 0;si.nMax = NUMLINES - 1;si.nPage = cyClient/cyChar; SetScrollInfo(hwnd, SB_VERT, &si,

2015-05-02 12:45:27 988

转载 VC通过GDI创建裁剪区

就是说,比如窗口是640x480的,我创建一个(10,10)-(100,100)的裁剪区域,那么任何在该区域外的绘图都会被忽略掉。比如画一条(0,0)-(300,300)的直线,那么只会出现在自己定义的裁剪区域内,别的地方是不会绘制任何东西的。VC通过GDI怎样创建这样的裁剪区域呢? void CGView::OnDraw(CDC* pDC){CGDoc* pDoc

2015-05-01 16:28:00 668

转载 路径层 CDC::BeginPath,BeginPath

5. 路径层 CDC::BeginPath,BeginPath   如何在Device Context中建立了一个路径层:   1)即调用BeginPath()   2)再调用其他的GDI绘图函数参数一个区域,如Rectangle生成一个矩形区域   3)调用EndPath()  产生闭环的路径层(即一个绘图区域)            pDC->BeginPath()

2015-05-01 16:17:55 1159

转载 多线程问题

师弟问了个非常有趣的多线程问题,之前没有关注,这里写下自己的心得。对于如下代码:[cpp] view plaincopyprint?#include   #include   #include       UINT WINAPI Fun1Proc(LPVOID lpParameter);  UINT WINAP

2015-05-01 15:02:31 371

转载 win32 滚动条 显示文本

#define NUMLINES ((int) (sizeof sysmetrics / sizeof sysmetrics [0]))struct{int index;TCHAR *szLabel;TCHAR *szDesc;}sysmetrics[]={SM_CXSCREEN,TEXT("SM_CXSCREEN"),TEXT ("Screen

2015-05-01 10:50:34 773

原创 GetMessage(&msg,NULL,0,0)和GetMessage(&msg,hwnd,0,0)

如果是下面的hwnd,则当窗口关闭后,hwnd无效了,无法捕获WM_QUIT消息了。while(GetMessage(&msg,hwnd,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}hWnd [in] Handle to the window whose messages are to be retriev

2015-04-30 18:02:16 2018

原创 BitBlt 画透明位图

CDC::BitBlt函数,应用在GDI的绘图中,有时候我们需要显示的位图有一部分是透明的,例如在棋类游戏中,棋盘图片和棋子图片融合的时候,棋子边缘应该是透明。       在图1中,棋盘和棋子图片融合在一起,需要设置棋子图片边缘的“品红色”为透明。         1、BitBlt函数说明:               BOOL BitBlt( int x, int

2015-04-24 20:24:59 6966 1

转载 Bitblt单色位图SetBkColor、SetTextColor作用

void CGameDIB::TransparentBlt(HDC hdcDest, int iDestX, int iDestY, int iDestWidth, int iDestHeight,                   HDC hdcSource, int iSourceX, int iSourceY, int iSourceWidth, int iSourceHeig

2015-04-24 09:38:24 714

转载 透明位图--SRCINVERT用法讲解

实现透明位图,有一个知识点必须要提前知道,那就是:注意对于图片来说,只有纯黑RGB(0,0,0)为0,其余即使是RGB(0,0,1)也是1如果一个单色位图向彩色位图转换,那么单色位图为1的部分(也就是白色部分),会转换为彩色位图的背景色,单色位图为0的部分(黑色部分),会转换为彩色位图的前景色。如果一个彩色位图向单色位图转换,那么彩色位图的背景色转换到单色位图中则为1(

2015-04-23 22:24:07 3328 1

原创 点击对话框的任何位置都能拖动,模拟单机了鼠标左键

void CGoBangDlg::OnLButtonDown(UINT nFlags, CPoint point){//模拟鼠标点击在None-Client,非客户区  HTCAPTION   点击标题  //功能是:点击对话框的任何位置都能拖动窗口PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y))

2015-04-23 15:01:50 473

转载 如何解决绘图过程中的闪烁

在VC中进行绘图过程处理时,如果图形刷新很快,经常出现图形闪烁的现象。利用先在内存绘制,然后拷贝到屏幕的办法可以消除屏幕闪烁,具体的方法是先在内存中创建一个与设备兼容的内存设备上下文,也就是开辟一快内存区来作为显示区域,然后在这个内存区进行绘制图形。在绘制完成后利用BitBlt函数把内存的图形直接拷贝到屏幕上即可。具体的代码实现为:(1)创建内存区域CDC* p

2015-04-21 11:50:12 3895

转载 调色板原理

逻辑调色板结构LOGPALETTE,该结构定义如下:  typedef struct tagLOGPALETTE  {    WORD palVersion;  //调色板的板本号,应该指定该值为0x300;    WORD palNumEntries;//调色板中的表项数,对于灰度图像该值为256;    PALETEENTRY palPalEntry[1];//调色板中的颜

2015-04-19 20:39:34 618

转载 new,malloc,GlobalAlloc用法

一。关于内存 1、内存分配方式  内存分配方式有三种:  (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。  (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但

2015-04-19 10:54:24 307

转载 从内存字节流到文件—GlobalAlloc,GlobalLock,LockResource等用法

图片可以作为程序的资源,有时候我们想把图片资源编译为程序的一部分,这样资源就可以避免直接不查看利用。或者直接使用资源的二进制字节。那么怎么做到呢?windows是这么做的:首先申请一块全局内存块,将资源字节流拷贝到申请的内存中,然后就可以对该内存操作(比如转换为一个windows可以用的图片资源),最后释放掉内存块。下面是用到的几个函数:GlobalAlloc 函数原型:

2015-04-19 10:22:24 698

原创 OninitDialog与OnCreate两个消息有何区别,分别在什么时候调用

WM_INITDIALOGThe WM_INITDIALOG message is sent to the dialog box procedure immediately before a dialog box is displayed.WM_CREATEThe WM_CREATE message is sent when an application requests that a

2015-04-18 10:23:56 3640

原创 mfc对话框如何关闭自动调整大小功能

跳转到需要固定大小的对话框,将Border的属性从Reszing改为Dialog Frame就可以阻止dialog被人收到改变大小

2015-04-15 16:12:22 529

原创 CImage 加载透明PNG图片

CImage m_img;void LoadImage();void SetAlphaBits();void CceshipngView::LoadImage(){//第1步 寻找资源HRSRC  hrsrc_resource=::FindResource(NULL,MAKEINTRESOURCE(IDB_NARUTO),"PNG");if(

2015-04-15 15:37:07 930

原创 CImage类 Load 图像

1 参数为路径LPCTSTR pszfilename        HRESULT hresult1=m_image.Load("C:\hell.jpg");       if(E_FAIL==hresult1){MessageBox(_T(" m_image Load  failed!"));return;}2 参数为路径IStream pszfile

2015-04-14 15:49:37 4088

转载 CImage类的介绍与使用

Visual C++的CBitmap类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标、位图、光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP、GIF、JPEG等)。因此,想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码。 现在,MFC和ATL共享的新类CImage为图像处理提供了许多相应的方法,这使得Visual C

2015-04-13 21:50:02 546

转载 InvalidateRect()与Invalidate()的用法(转)

BOOL InvalidateRect(  HWND hWnd,           // 窗口句柄  CONST RECT* lpRect,   // 矩形区域  BOOL bErase            //是否擦除背景); InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效。InvalidateRect函数

2015-04-13 19:20:16 623 1

转载 InvalidateRect()与Invalidate()的用法

BOOL InvalidateRect(  HWND hWnd,           // 窗口句柄  CONST RECT* lpRect,   // 矩形区域  BOOL bErase            //是否擦除背景); InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效。InvalidateRect函数

2015-04-13 11:19:04 525

原创 使用CImage 加载 PNG文件

//图片类class CImageEx : public CImage{public:CImageEx(){}~CImageEx(){}//加载图片bool LoadImage(HINSTANCE hInstance, LPCTSTR pszResourceName,LPCTSTR pszResourceType=TEXT("PNG"));bool

2015-04-12 22:50:02 984

转载 如何利用CImage和AlphaBlend绘制PNG图片?

PNG图片本身就带有透明度,但是用CImage画出来的png却有白色背景,那么如何解决呢? 原因在于alpha的处理,CImage并没有做处理,而gdi+做过了处理,我们正是要做这样的处理,并不复杂反而简单。 #include  void CrossImage(CImage &img)  //对像素进行转换{ for(int i=0; i

2015-04-12 22:36:25 1842

转载 pragma comment的使用 pragma预处理指令详解

#pragma comment( comment-type [,"commentstring"] )该宏放置一个注释到对象文件或者可执行文件。comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一。commentstring是一个提供为comment-type提供附加信息的字符串,Remarks:1、compiler:放

2015-04-10 16:05:48 312

转载 IsIconic()和OnPaint()函数 虽然没什么用 留个印象

void CSetAddressDlg::OnPaint() {if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client re

2015-03-30 23:05:37 571

转载 (来自百度知道)c/c++ VC++ MFC 关于在Static 控件里面作图的问题 详见问题补充,希望能留下QQ,交流一下

在头文件定义了一个CStatic类的对象2.在Oncreate()函数里面3.在Onpaint()函数里面,在static控件里面画了一根直线但是有一种很奇怪的现象刚开始出现窗口的时候,那个直线不出现但是我在拉动窗口的边框,改变窗口大小的时候,直线会出现但是,更奇怪的现象就是最大化的时候,然后取消最大化的时

2015-03-27 19:49:42 655

googleTest和googleMock,可以在vs2017、vs2010中编译

gmock是google公司推出的一款开源的白盒测试工具。gmock是个很强大的东西,测试一个模块的时候,可能涉及到和其他模块交互,可以将模块之间的接口mock起来,模拟交互过程。其作用就类似白盒测试中的打桩的概念。google 开源的跨平台C++单元测试框架,是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。 Google Mock(简称gmock)是Google在2008年推出的一套针对C++的Mock框架,它灵感取自于jMock、EasyMock、harcreat。它提供了以下这些特性: 轻松地创建mock类 支持丰富的匹配器(Matcher)和行为(Action) 支持有序、无序、部分有序的期望行为的定义 多平台的支持

2023-11-29

C++Builder10中使用opencv2.1-2.rar

C++Builder 10 Seattle下实现调用Opencv函数,实现拍照、加载图片功能

2021-11-24

小老鼠 flash

小老鼠 flash

2015-04-18

MFC 扫雷

使用MFC 开发的扫雷程序

2015-04-17

MFC 用鼠标拖动图片移动

用鼠标拖动图片移动,移动时,鼠标限制在view中,鼠标按下中,光标变成十字

2015-03-26

MFC 中实现VTK

MFC 中实现VTK 。

2014-03-19

MFC 下的窗口分割

MFC 下的窗口分割 封装性好 。

2014-03-19

raycasting 光线追踪

欧洲一个学生写的作业,关于光线追踪体绘制的程序,很强-European students write an operation on ray tracing Volume Rendering procedures and strong! 本来没有.dat 文件 我自己做了一个

2014-03-11

Win32 实现Bezier曲线

Win32 实现Bezier曲线

2014-02-28

OpenGL----动态球体---源代码

OpenGL----动态球体---源代码

2014-01-16

mfc 列表控件 显示文件列表

mfc 列表控件 显示文件列表

2014-01-16

MFC 单文档 实现opengl 三维旋转 缩放 光照

MFC 单文档 实现opengl 三维旋转 缩放 光照

2014-01-16

opengl视窗分割

opengl 视窗分割

2014-01-15

opengl 多视图

opengl 多视图

2014-01-15

mfc 多文档中实现 opengl

多文档 实现 opengl

2014-01-15

opengl 实现的五环动画效果

opengl实现的 Olympic

2014-01-15

jquery 实现瀑布流

瀑布流 实现图片的动态加载 。

2014-01-15

opengl 拾取

opengl 实现 鼠标 拾取

2014-01-10

opengl 光照 动态球 MFC

opengl 光照 动态球opengl 光照 动态球opengl 光照 动态球opengl 光照 动态球opengl 光照 动态球

2014-01-05

opengl 开发的dll

opengl 开发的dllopengl 开发的dllopengl 开发的dllopengl 开发的dllopengl 开发的dll

2014-01-05

MFC 实现鼠标点击全屏显示

MFC 实现鼠标点击全屏显示

2014-01-05

空空如也

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

TA关注的人

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