- 博客(20)
- 资源 (1)
- 收藏
- 关注
转载 用C++11的std::async代替线程的创建
c++11中增加了线程,使得我们可以非常方便的创建线程,它的基本用法是这样的: void f(int n);std::thread t(f, n + 1);t.join(); 但是线程毕竟是属于比较低层次的东西,有时候使用有些不便,比如我希望获取线程函数的返回结果的时候,我就不能直接通过thread.join()得到结果,这时就必须定义一个变量,在线程函数中去给这个变量赋值,然后join
2016-02-19 13:35:26
612
原创 创建COM对象
成功初始化COM库之后,线程就可以安全使用COM接口了。为了能够使用COM接口,你的程序首先应该创建一个实现接口的对象。一般来说,有两种方式创建COM对象:1.实现模块会提供创建对象的方法2.COM提供了一个函数CoCreateInstance
2016-02-17 10:31:02
944
原创 COM组件的错误处理
COM的函数会返回一个HRESULT类型的返回值来表明成功或者失败。HRESULT是32位的整型数据,最高位标记成功或者失败。0表示成功1表示失败。
2016-02-15 11:14:57
4139
原创 COM组件的初始化
任何一个使用COM组件的windows程序在初始化COM库的时候都要调用CoInitializeEx函数,每一个使用COM接口的线程必须单独调用这个函数。
2016-02-15 10:36:39
4247
原创 Windows编程之COM组件
什么是COM接口? COM即Component Object Model,到底是用来干啥的呢?如果你了解Java或者C#,你应该会很了解interface。在C++中,最接近接口概念的应该是虚类了,所谓虚类,就是只包含虚函数的类。
2016-02-02 14:25:55
6144
原创 Windows编程C++之第一个Windows程序
这篇文章主要是来介绍如何create一个最基本的windows程序。它创建的窗口是最基本的空白窗口,下面是对应的代码
2016-02-02 09:24:04
672
原创 Windows 编程之WinMain
每一个Windows程序都有一个程序入口点函数:WinMain或者wWinMain,下面是wWinMain的定义
2016-02-01 16:27:47
487
原创 Windows编程C++之句柄
什么是窗口?窗口是windows编程的核心,那什么是窗口?此时浮现在你脑中窗口的应该是这个样子的 这种类型的窗口叫做应用窗口或者主窗口,窗口内部的区域叫做client area,是由用户自己的程序管理的,窗口外的区域是由OS管理的。下图是另外一种类型的窗口。
2016-02-01 16:15:19
1673
原创 Windows编程数据类型概述 C++
如果你从来没有接触过windows编程,那么当你第一次看到windows程序的时候,你会晕了,因为满篇的DWORD_PTR 或者诸如 LPRECT一类的标识,所以,弄清这些标识符是有必要的。
2016-02-01 14:58:12
890
原创 Win10 TouchAPI
最近要做Win10的项目,故而研究了win10 的touch api,下面来描述它在Universal Windows Platform (UWP) apps的应用。
2016-01-29 10:00:16
2878
1
原创 C++ 友元关系
在封装中C++类数据成员大多情况是private属性;但是如果接口采用多参数实现肯定影响程序效率;然而这时候如果外界需要频繁访问这些私有成员,就不得不需要一个既安全又理想的“后门”——友元关系;
2016-01-28 10:23:35
392
原创 C++ 共享指针 shared_ptr
shared_ptr 由于C++不像java一样有自动回收内存机制,new对象后,都要手动的delete掉,当程序员忘记delete的时候,可能会发生访问内存异常错误。shared_ptr是为了解决这类问题而提出的,它是一种共享指针
2016-01-11 10:58:13
4244
原创 C#调用C++的方法
网上有很多C#调用C++的帖子,我之前走了不少弯路,现总结出来希望大家少走一些弯路,如果有什么不对的地方,欢迎大家随时纠正~
2016-01-06 15:12:46
580
原创 OpenGL(7)--渲染结果截图
渲染结果截图 OpenGL渲染的结果通常是3D图像,如果我们想把3D图像转换成2D图像保存下来呢?较为复杂的方法是利用帧缓存技术(FBO)来实现,我这里总结一种自用的较为简便的方式。
2016-01-06 13:26:37
1885
1
原创 OpenGL(6)--SharpGL
SharpGL OpenGL通常使用C++,如果想用C#来使用OpenGL呢?当然了,这也是没有问题的!我们可以使用SharpGL来完成。SharpGL是C#的OpenGL控件,利用它可以在.NET环境下调用OpenGL的API做三维图像。
2016-01-06 13:17:47
3444
1
原创 OpenGL(5)--太阳系和的日月地实现
太阳系和机器人的实现全局坐标系和局部坐标系 如果用全局坐标系的思想来考虑问题,那么必须要注意矩阵乘法的顺序和代码中的顺序是相反的。而用局部坐标系来思考的话,所有的操作都是针对于当前不断变化的坐标系,因此,矩阵乘法很自然的与他们再代码中出现的顺序一样。
2016-01-05 16:08:02
3501
原创 OpenGL(4)-Opengl矩阵变换
Opengl矩阵变换矩阵变换 Opengl中有很多坐标系,但实际上他们只是思考方式的不同。opengl渲染图形耳朵过程可以和照相机照相的过程类比起来。用照相机照相的过程分为如下几个步骤: 1. 把照相机固定在三脚架上面,对准场景(视图变换) 2. 对场景进行安排调整(模型变换) 3. 选择照相机的镜头,调整放大倍数(投影变换) 4. 确定最终照片的尺寸(视口变换)
2016-01-05 14:05:22
1237
原创 OpenGL(3)-OpenGL视角的计算
OpenGL视角 OepnGL绘图的过程中,让camera指向正确的方向比较容易,然而,在使用投影函数的过程中,一定要把物体放在裁剪范围之内,当绘制出来的物体大小不合适的时候,可能是由于使用了glPerspective()函数导致的,可以通过修改函数第一个参数的值来调整大小。那么第一个参数的角度(视角)是如何确定的呢?
2016-01-05 11:42:37
1732
原创 OpenGL(2)-3D绘图通俗解释
三维图像显示过程 对于二维图像的显示,我们通常是把buffer里的像素值逐一着色即可,通过不停的把每个像素进行着色,然后就可以绘制出来了.三维图像显示在二维的平面上就没有这么简单了。对于二维图像的显示,给我们的感觉像是在画布上着色,而三维图像的显示就相当于用照相机照相了。通过把三维转换成二维,就可以显示在照片上了。OpenGL中有很多封装好的函数可以实现三维图像的绘制
2016-01-05 11:28:00
1456
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人