随笔分类 -  C++ & MFC & QT

摘要:将ncnn静态链接vulkan改成动态加载vulkan的形式,用到了KhronosGroup组织下的Vulkan-SDK里面的CPP部分。 阅读全文
posted @ 2023-09-14 15:55 重庆Debug 阅读(444) 评论(0) 推荐(0)
摘要:用vs2017 qt5.12 静态编译onnxruntime-gpu CUDA cuDNN TensorRT的完整教程 阅读全文
posted @ 2022-12-13 18:56 重庆Debug 阅读(4553) 评论(5) 推荐(4)
摘要:因为工作上的需求,需要实现一个类似Photoshop里面的钢笔工具, 分析一下它的功能,包括: 1. 有两种点:节点和控制点,节点是构成图形的基本端点,控制点是影响贝塞尔曲线的系数。 2. 创建节点:鼠标左键点击空白区域,即可创建一个方形节点。 3. 删除节点:鼠标左键单击一个已存在的节点,即可将当 阅读全文
posted @ 2022-06-17 11:23 重庆Debug 阅读(781) 评论(2) 推荐(0)
摘要:协程的介绍协程(coroutine),意思就是“协作的例程”(co-operative routines),最早由Melvin Conway在1963年提出并实现。跟主流程序语言中的线程不一样,线程属于侵入式组件,线程实现的系统称之为抢占式多任务系统,而协程实现的多任务系统成为协作式多任务系统。线程... 阅读全文
posted @ 2014-11-12 17:11 重庆Debug 阅读(1455) 评论(0) 推荐(1)
摘要:其实最初不是为了解决这个问题而来的,是Peter兄给我的提示解决另一个问题却让我误打误撞解决了另外一个问题之后也把这个隐藏了很久的bug找到(之前总是有一些特别短的视频产生不知所措还以为是视频素材本身有问题呢),今天真是收获颇丰啊,对libav的理解更深。 一直以来我的程序架构是让读一帧av_re... 阅读全文
posted @ 2014-09-02 16:42 重庆Debug 阅读(5548) 评论(10) 推荐(1)
摘要:OpenCV学习之CvMat的用法详解及实例CvMat是OpenCV比较基础的函数。初学者应该掌握并熟练应用。但是我认为计算机专业学习的方法是,不断的总结并且提炼,同时还要做大量的实践,如编码,才能记忆深刻,体会深刻,从而引导自己想更高层次迈进。1.初始化矩阵:方式一、逐点赋值式:CvMat* ma... 阅读全文
posted @ 2014-08-22 13:26 重庆Debug 阅读(15202) 评论(0) 推荐(0)
摘要:距离上一次教程又过去了将近一个多月,相信大家已经都将我上节课所说的东西所完全消化掉了。这节课就来点轻松的,说说libav的命令使用吧。注:遇到不懂的或者本文没有提到的可以用例如命令后加 --help full或者man 命令(man avconv)查看全部参数细节,或者进libav.org网站查:h... 阅读全文
posted @ 2014-08-13 17:50 重庆Debug 阅读(2559) 评论(1) 推荐(1)
摘要:Bezier曲线的原理Bezier曲线是应用于二维图形的曲线。曲线由顶点和控制点组成,通过改变控制点坐标可以改变曲线的形状。一次Bezier曲线公式:一次Bezier曲线是由P0至P1的连续点,描述的一条线段二次Bezier曲线公式:二次Bezier曲线是 P0至P1 的连续点Q0和P1至P2 的连... 阅读全文
posted @ 2014-07-29 14:32 重庆Debug 阅读(18686) 评论(0) 推荐(0)
摘要:突然发现又有好久没有写技术blog了,主要原因是最近时间都用来研究libav去了(因为api极类似ffmpeg,虽然出自同一份代码的另外一个分支,因项目选用libav,故下文均用libav代替),其实要从知道这个库的时候已经很久了,早在加入avplayer开源社区的已经略有耳闻,看着他们讨论我却一... 阅读全文
posted @ 2014-07-01 18:11 重庆Debug 阅读(4701) 评论(2) 推荐(0)
摘要:最近一段时间在编译Android 的source code的部分工作,网上的许多资料都废话太多,下面是我将其精简出来的版本。(我的编译环境是 ubuntu linux 12.04 64bit)首先需要安装一些依赖环境:(http://source.android.com/source/initializing.html)一、配置环境根据我这种环境需要执行的命令有:$ sudo apt-get install sun-java6-jdk$ sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl lib. 阅读全文
posted @ 2013-12-05 15:41 重庆Debug 阅读(2638) 评论(0) 推荐(0)
摘要:how to set html format string to clipboard copy clipboard to memory 阅读全文
posted @ 2013-10-19 17:32 重庆Debug 阅读(2164) 评论(0) 推荐(0)
摘要:我们知道实现C++和Javascript通讯有下表5种接口: 引擎编写语言API接口C、C++与JavaScript交互(变量、函数、类)vc2005编译静态库的大小示例EXE的大小执行、解析JavaScript的速度Google V8C++C++可以23.1M1.1M最快Firefox3.5以前 SpiderMonkeyCC可以1.3M500K慢Firefox高版本SpiderMonkeyC++C可以15.3M1.7M一般Webkit JavaScriptCoreC++C可以26.2M1.4M一般IE未知COM可以未知100K(没有链接库)一般IE的Trident引擎是非开源的,... 阅读全文
posted @ 2013-09-09 10:06 重庆Debug 阅读(2117) 评论(0) 推荐(0)
摘要:本来是一件很简单的事情,就是将View上使用OpenGL画出来的数据生成图片让其实现打印的功能,我们知道MFC提供打印的接口是不支持OpenGL的(至少我不清楚),必须将它转成GDI再画在Print的pDC上。OpenGL一直都有一个函数名字叫:glReadPixels,它能read a block of pixels from the frame buffer,但是谁都没想到它竟然转换成CImage竟然是这样的规则。http://www.opengl.org/sdk/docs/man/xhtml/glReadPixels.xml中说到:Specify the window coordinat 阅读全文
posted @ 2013-08-12 10:03 重庆Debug 阅读(2058) 评论(0) 推荐(0)
摘要:在调试公司项目代码的时候,有一个系统设置的功能,里面需要从注册表中去读取数据,因为使用了MFC框架所以,为了简化代码直接使用了CWinAppEx::GetString 、CWinAppEx::SetString、CWinAppEx::GetInt、CWinAppEx::SetInt等等框架内函数,因为使用它之间只需要SetRegistryKey(_T("Application Name"));设置一下就好了,远比自己调用win32 API或者CRegKey类用起来方便多了。发现一个GetString的在实现的时候有一个bug,起初是我在读取一个注册表String时发现,CW 阅读全文
posted @ 2013-08-07 13:41 重庆Debug 阅读(1623) 评论(0) 推荐(0)
摘要:因为公司的个项目最近开始写MFC了,又遇到一个坑爹的问题,使用的View视图模式在VS2010中创建的工程,默认就带入了许多的Style,例如Office 2007的许多漂亮样式确实很方便,但是同样也会造成一些字体模糊问题(见下图),后来整了半天才解决,特此做个记录。首先这确定是MS的Bug,http://connect.microsoft.com/VisualStudio/feedback/details/505466/mfc-visual-style-font-size-too-small-to-display-chinese-character-clearly-on-windows-xp 阅读全文
posted @ 2013-07-23 15:28 重庆Debug 阅读(1671) 评论(0) 推荐(0)
摘要:因为初次接触OpenGL,图形学也后悔当初在学校没有认真学,隐约记得教授当时讲过图像变形的问题,而且我的bitmap也是2的N次方:16*16的,在网络上找到的大多都是一句话:“视口的纵横比一般和视景体的纵横比相同,若不同则当图像投影到视口时就会变形。”太奇怪了,如果说是因为视口和是视景的比例不同的话,应该也会是图像全部是同样的变形啊,实际上是同一个层级下,不同的icon会不同的扭曲!无语了。。难道这个实现不了就不能让用户放大地图到某一个层级了吗?有没有OpenGL大神能否救救我这个可怜的。。。 阅读全文
posted @ 2013-06-21 17:25 重庆Debug 阅读(2010) 评论(0) 推荐(0)
摘要:1、先去lua.org官方网站上去下载一个win32的vc10库(vs2010),如果你是其他版本请按照实际需求下载。2、创建一个新的 空控制台应用程序3、复制lualib下的include所有.h文件到项目中,并且全部加入到header files和source files中。4、新建一个main.cpp文件到source files中:加入C++代码:#include <stdio.h>#include <stdlib.h>#include <iostream>extern "C" {#include "lua.h" 阅读全文
posted @ 2013-05-16 13:07 重庆Debug 阅读(1181) 评论(0) 推荐(0)
摘要:ReferencesNamingGeneral Naming Rulesint num_errors; // Good.int num_completed_connections; // Good.int n; // Bad - meaningless.int nerr; // Bad - ambiguous abbreviation.int n_comp_conns; // Bad - ambiguous abbreviation.// Good// These show proper names with no abbreviations.int num_dns_connections; 阅读全文
posted @ 2013-04-25 10:59 重庆Debug 阅读(307) 评论(0) 推荐(0)
摘要:http://www.boost.org创建执行绪Mutex (mutual exclusion)条件变数执行绪局部存储仅运行一次的常式Boost执行绪库的未来创建执行绪就像std::fstream类就代表一个档一样,boost::thread类就代表一个可执行的执行绪。缺省构造函数创建一个代表当前执行执行绪的实例。一个重载的构造函数以一个不需任何参数的函数物件作为参数,并且没有返回值。这个构造函数创建一个新的可执行执行绪,它调用了那个函数物件。起先,大家认为传统C创建执行绪的方法似乎比这样的设计更有用,因为C创建执行绪的时候会传入一个void*指标,通过这种方法就可以传入资料。然而,由于Bo 阅读全文
posted @ 2013-04-25 10:54 重庆Debug 阅读(421) 评论(0) 推荐(0)