- 博客(60)
- 资源 (5)
- 收藏
- 关注
原创 muPdf 把 pdf 转换为 png 图片
为了把pdf 导出为图片,看了网上很多的例子。基本没有一个完整可用的,基本都是部分正确。 下面总结了能够比较简单的得到 mupdf.dll 的方法,并且使用方法。step1: 下载SumatraPDF工程:https://github.com/Bitterbell/Pdf-Reader muPdf 库是一个开源的 pdf 读取器,但是在 github 上下载的源码编译得到 mu...
2018-06-20 17:06:07 4941
原创 vc++ sdk 实现的 一个文本编辑器类,可以插入图片
本人在网络上找了很久,没有找到一个用 vs sdk 从零实现的 文本编辑器。全部都是开源的库,比如 notepad++ 使用的 stilla。我相信比较简单的,能看懂的代码,对很多人都有用。只需要稍微修改下,就可以适合你的 项目。现在我上传的这个是 能复制 图片的版本。但是没有保存的功能。有需要可以联系我: jiangdewei2008@163.com可以在 csdn 里
2016-12-26 12:21:21 735
原创 D3D、OpenGL顶点和矩阵的相乘和存储:
D3D矩阵存储是行主序(row-major order)/行优先 OpenGL矩阵存储是列主序(column-major order)/列优先: 线性代数意义的同一个矩阵,在d3d 和 ogl 中却有不同的存储顺序 线代:a11,a12,a13,a14 |D3D : a11,a12,a13,a14 | OpenGL: a1
2014-06-15 16:08:15 1072
原创 应该记住的基本流程及其函数、背面剔除
在绘制前可能需要初始化的动作: 清除back buffer的当前缓冲器(也可以有深度缓冲器、模板缓冲),设置世界矩阵、投影矩阵和视点,再有就是视口。 清除三种缓冲区: 定义: Clear(THIS_ DWORD Count,CONST D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,f
2014-06-02 17:45:00 753
原创 D3D 的 一个win32 框架程序
//-----------------------------------------------------------------------------// File: CreateDevice.cpp//// Desc: This is the first tutorial for using Direct3D. In this tutorial, all//
2014-05-21 14:26:53 483
原创 windows 网络编程总结
1.需要的头文件和库进行Windows网络编程,你需要在你的程序中包含WINSOCK2.H或MSWSOCK.H, 同时你需要添加引入库WS2_32. LIB或WSOCK32.LIB。准备好后,你就可以着手建立你的第一个网络程序了。 2.一个简单的
2014-05-15 14:58:49 783
原创 用虚函数或者bind、function实现线程的方法
应用:Thread封装在实现自定义的线程类时,曾经这么干过:定义虚函数run(),用户自定义的CustomThread::Thread后,自己实现run()函数就OK了。 当时觉得这么做也不错。现在有了boost::function/boost::bind我们可以这么干:定义一个线程类:.h文件01#include
2014-05-13 13:23:17 648
原创 makefile
你源代码包含头文件的方式也要和你的CFLAGS的路径配合,举例:1 源文件:#include makefile: -I/test/ROS/ros/fuerte/include/2 源文件:#include makefile: -I/test/ROS/ros/fuerte/include/pclex:
2014-05-13 11:29:46 354
原创 心跳检测
一、什么是心跳检测 软件的质量属性是衡量软件非功能性需求的重要因素。 可用性质量属性主要关注软件系统的故障和它所带来的后果。心跳检测是能够提高系统可用性的措施。 例如:服务端和客户端之间进行通讯,每隔5分钟进行一次心跳检测,检测和主站连接是否正常。客户端每5分钟发一个心跳检测数据帧,服务端接收到数据帧表示通过,否则表示客户端断开,抛出异常。 判断对方(设备,进程或
2014-05-12 13:06:05 4921
原创 最近发现的重要问题
linux环境实现C/C++程序崩溃退出时打印栈信息 :http://china.ygw.blog.163.com/blog/static/687197462013617105026503/C++记录程序崩溃时的dumpfile:http://www.2cto.com/kf/201209/157028.html
2014-04-26 09:42:24 345
原创 裁剪多余的物体
http://hi.baidu.com/hunvoqmqccbepqq/item/17f50403324e8fc590571846
2014-04-23 13:52:43 378
原创 optional
c++14中将包含一个std::optional类,它的功能和用法和boost的optional类似。optional内部存储空间可能存储了T类型的值也可能没有存储T类型的值,只有当optional被T初始化之后,这个optional才是有效的,否则是无效的,它实现了未初始化的概念。 optional的应用场景函数返回无效对象 有时根据某个条件去查找对象时,如果查找不到对象时就会
2014-04-14 09:36:26 545
原创 D3D 的D3DXMatrixLookAtLH矩阵的计算过程
1. 线性空间,向量,基三者之间的关系:线性空间是由向量的集合组成的。在维度为n的向量空间中,基就是由n个互相垂直的向量组成,并且在这个线性空间中的任何一个向量都能表示为基中n个向量的线性组合。 2. 维数为3的向量空间的定义:维度为3的线性空间具有几何意义,它的定义是:所有在三维空间中以原点为起始点的向量的集合。这里需要注意的是这里的向量的定义都是以原点为起点
2014-03-25 15:36:01 1147
原创 MFC中的opengl框架
一、简介 GDI是通过设备句柄(Device Context以下简称"DC")来绘图,而OpenGL则需要绘制环境(Rendering Context,以下简称"RC")。每一个GDI命令需要传给它一个DC,但与GDI不同,OpenGL使用当前绘制环境(RC)。一旦在一个线程中指定了一个当前RC,在此线程中其后所有的OpenGL命令都使用相同的当前RC。虽然在单一窗口中可以使用多个RC
2014-03-23 09:44:19 569
原创 MFC OnIdle的处理
CWinThread::Run()的代码如下:// main running routine until threadexitsintCWinThread::Run(){ ASSERT_VALID(this); // for tracking the idle time state BOOL bIdle = TRUE; LO
2014-03-21 13:38:14 521
原创 MFC 消息处理总结
梦想SkyMFC消息响应机制分析---- MFC是Windows下程序设计的最流行的一个类库,但是该类库比较庞杂,尤其是它的消息映射机制,更是涉及到很多低层的东西,我们在这里,对它的整个消息映射机制进行了系统的分析,可以帮助程序开发人员对MFC的消息映射机制有一个比较透彻的了解。1.引言---- VC++的MFC类库实际上是Windows下C++编程的一套最为流行的类库。M
2014-03-21 10:34:45 550
原创 unreal Engine总结
1.UC文件和cpp文件的编译顺序:编译时分为两次进行的。如果uc文件有改动,那么引擎会先编译uc文件,然后头文件会自动生成或者更新。在头文件更新了之后,然后可以写cpp文件,然后再编译。
2014-03-19 11:25:33 607
原创 MDI中对象的销毁过程
对象的销毁步骤1.首先看对象的包含关系。CWinApp::m_pDocManager对象中有成员m_templateList,存储的是docTemplate.每一个MultiDocTemplate中有成员 m_docList,存储的是所有的doc对象。每一个Document里面有成员m_viewList,里面存储的是这个doc对应的所有view。每一个view都有一个 pa
2014-03-18 15:54:13 639
原创 修改 MDI child Frame 窗口名字的方法
调用CDocTemplate::InitialUpdateFrame初始化边框,该函数在【doctempl.cpp323】 2.1调用CFrameWnd::InitialUpdateFrame【winfrm.cpp732】 2.1.1将第一个视设置为活动视【winfrm.cpp742】 2.1.2给所有相关视图及控件发送WM_I
2014-03-18 09:31:52 1071
原创 WNDCLASS(窗口类)和hWnd的关系
WNDCLASS(窗口类)和hWnd的关系ex:WNDCLASS wndclass;wndclass.lpfnWndProc = wndProc;wndclass.lpszClassName="the name";RegisterClass(&wndclass);HWND hwnd=CreateWindow("the name","window text",...);
2014-03-17 11:27:03 766
原创 为什么MFC的窗口程序都是 AfxWndProc
我们都知道MFC的窗口例程都是 AfxWndProc,下面就来分析是怎样实现的。 我们在wnd的Create函数或者dialog的DoModel函数里面都会看到一个函数:AfxHookWindowCreate(this); 在这个函数里面最重要的一句语句是:::SetWindowsHookEx(WH_CBT, _AfxCbtFilterHook, NULL, ::GetCur
2014-03-14 15:07:18 1134
原创 opengl 2.0 相关知识
windows本身自带的opengl不支持opengl2.0. 而且opengl网站也没有发布相关opengl2.0的库。opengl2.0的库是别的组织实现的,比如有glew、glee等都是实现了opengl2.0的。只需要使用这些库就可以使用opengl2.0. 下面以glew举例:http://glew.sourceforge.net/glew的下载有 source和bin
2014-03-13 09:39:03 487
原创 PeekMessage/GetMessage SendMessage和PostMessage SendMessageTimeOut
1.PeekMessage/GetMessage 两个函数主要有以下两个区别: 1.GetMessage只有在等到消息时才返回,没有消息时就会阻塞线程,这时线程的时间片将会被出让给别的线程。而且当GetMessage遇到WM_QUIT时,将会返回0. 而PeekMessage只是检查一下消息队列,有没有消息都会立即返回,只是在没有消息的时候返回值为0. 所以Peek
2014-03-11 10:14:13 644
原创 完整的绘制一个图元的基本步骤
1.D3D 从0到一个图元的绘制 的步骤 (1).初始化D3D(LPDIRECT3D9)和Device(LPDIRECT3DDEVICE9)对象。 这里的主要作用是:设置back buffer的个数、格式,还有在swapBuffer之后对buffer的处理方法,比如back buffer的内容被删除或者back buffer的内容部变;是否启用 z-buffer 或者
2014-03-10 18:00:16 1712
原创 d3d矩阵变换
1. d3d的绘制流水线 局部坐标系(模型空间)、世界坐标系、观察坐标系、背面消隐、光照、裁剪、投影、视口变化、光栅化 每个3D模型都有自己的空间,空间的中心(原点)就是模型的中心。 世界空间就是物体(模型)存在的地方。世界的中心就是原点(0,0,0),注意屏幕中间的那一点不是世界空间的中心点,屏幕中间的那一点是由观察坐标系和投影的近裁剪平面决定的。
2014-03-10 10:58:13 1600
原创 operator new/placement new 和 内存池 技术
1.new 操作符总结 (1) operator new/delete函数的重载规则和行为 operator new/delete可以在类中进行重载。但是不能在全局重载原型为:void operator new(size_t size) 的函数。 operator new的行为是:首先分配内存,再调用构造函数,最后类型转换并返回指针。 oper
2014-02-18 16:04:21 644
原创 设计模式汇总
1.写在前面的话: 为什么要使用设计模式? 为什么工厂模式有三种? 下面的话也许能给你一点答案: 想想怎样提高代码的可扩展性,代码的重用,代码的低耦合? 也学设计模式能给你答案。 2.简单工厂模式、工厂模式、抽象工厂模式: (1).简单工厂模式:通过传进来的参数,然后判断需要new 那一个对象返回给使用者。 (2).工厂模式: 每一个产品
2014-02-17 10:54:46 288
原创 SDI和MDI分析、RTTI、序列化
3.单文档总结(1)MFC的winMain: 在vs的安装路径下面的文件winmain.cpp 中的唯一个函数 int AFXAPI AfxWinMain(…) { … if (pApp != NULL && !pApp->InitApplication()) if (!pThread->InitInstance()) n
2014-02-14 13:50:30 817
原创 MFC总结
1.MFC 消息 只有继承CCmdTarget的类才能实现消息映射。 消息映射应该首先在类里面使用 DECLARE_MESSAGE_MAP(), 然后再类的实现文件里使用 BEGIN_MESSAGE_MAP(theClass, baseClass) END_MESSAGE_MAP() 现在看看怎样实现
2014-02-13 09:36:36 536
原创 linux 消息队列 和 内存共享的简短说明
需要的头文件: #include #include 和消息队列相关的函数: 1.key_t ftok(const char *pathname,int proj_id); 2.int msgget(key_t, key, int msgflg); 3.int msg
2014-02-13 09:26:57 591
vc++ 纯sdk 实现的 文本编辑器类, 可以插入图片
2016-12-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人