自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (5)
  • 收藏
  • 关注

原创 编译器优化之内存对齐

在工作中,做性能优化,无意间看到反汇编中有nop指令,大致能猜测是内存对齐相关优化,但不清楚相关优化选项,编来了兴趣,对编译器的内存对齐优化进行一次系统的学习和总结由于我编写代码的运行环境为ARMV8指令集架构服务器,编译器是gcc,因此后续的总结主要基于ARM指令集。这次总结相关实例代码主要通过网站提供的在线编译进行编译对比自从有了AI后,学习总结变得容易了很多,这次学习和总结也主要基于百度文心一言的对话进行理解。

2024-05-02 22:22:45 875 1

原创 Release、Debug版本 float 未在拷贝构造函数中初始化问题

在查bug中,发现一个参数在构造函数中初始化了,但在拷贝构造函数中未赋值,结果在vector::resize中调用了拷贝构造函数,参数未初始化,导致在release 和 debug版本中结果不一样的问题。写个dome说明下:从结果上可以看出,vector::resize 第一个类先调用构造函数,后面都直接调用拷贝构造函数。 而reserve只是开辟空间,为做任何填充。我的...

2019-07-17 11:39:59 614

原创 R语言 -- car::scatterplotmatrix散点图矩阵 参数详解

最近为了帮忙媳妇绘制医学SCI文章,学习了下R语言。在R语言实战第二版书,第八章回归分析时,用到了scatterplotmatrix函数绘制散点图矩阵,发现已经不是当前最新的car包了,函数参数都错误了。在网上百度发现基本没有关于此函数的详细介绍,只有自己动手,查看help了。趁热打铁,写个说明。基于的car版本为:3.0-3先看函数的用法:scatterplotMatrix(...

2019-07-12 21:00:12 27068 6

原创 DirectX3D--正交矩阵、旋转、平移、DrawPrimitive 综合dome

在学习了 DIRECTX.9.0.3D游戏开发编程基础 一书 前4章后,终于写了一个简单dome,将前4章内容进行了整合。此dome主要涉及坐标转换、正交投影矩阵、DrawPrimitive、SetRenderState 等知识点。现将主要代码进行讲解。1、初始化DirectX3D组件bool UIMain::InitD3d(HINSTANCE hInst, int width, i...

2018-09-05 09:51:17 780

原创 DirectX3D---投影矩阵计算

投影变换将摄影空间中的三维物体投影到二维胶片上,也就是Direct3D中的屏幕,这种三维到二维的变换过程就是投影变换,即从取景空间到摄影空间的变换。设三维物体在观察空间中的坐标为Pview,投影矩阵为Mproj,则顶点在投影空间中的坐标为:Pproj = Pview * Mproj下面分别介绍两种基本的投影变换:正交投影和透视投影,以及它们在Direct3D中的实现。1、正交投影正...

2018-09-04 14:16:28 1925

转载 DirectX3D--SetRenderState函数详解

 1). 光照设置:  SetRenderState(D3DRS_LIGHTING, false); //关闭光照,当以颜色填充图元时,需要关闭光照,DirectX3D默认是开启光照的2). 设置着色模式:  SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT) //以第一个顶点颜色 填充图元SetRenderState(D3DRS_SH...

2018-09-03 16:24:25 904

原创 DirectX3D学习-- 基础函数解释

此文为 我在学习DirectX3D过程中,总结的一些基础函数 和 绘制过程。 方便以后使用查下。后续随学习过程不断添加吧。目录1、Direct3D 初始化2、屏幕的清空3、释放4、顶点形式5、坐标转换SetTransform6、修改绘制状态SetRenderState7、视口变换SetViewport8、顶点的创建CreateVertexBuffer9、索引...

2018-09-01 15:12:29 2008

原创 3D坐标系中 点 的 平移、旋转和缩放

基础概念矩阵一个m*n矩阵 是 一个m行、n列的矩形数组。如果一个矩阵只包含单行 或 单列, 这样的矩阵 为 行矩阵或 列矩阵,又叫行向量或列向量矩阵的乘法:点空间中的点,我们通常用一个 行向量表示: p = [x, y, z]坐标系用笛卡尔坐标系表示3D空间,我们按习惯可分为:左手坐标系 和 右手坐标系。如图:左手坐标系Z轴正方向向里,右手坐标系Z轴正...

2018-08-11 20:10:44 17550 2

原创 C++ 字符、字符串大小写的转换

string 大小写的转换,利用transform函数, 将string cmdContent 进行大小写转换。transform(cmdContent.begin(), cmdContent.end(), cmdContent.begin(), ::toupper);//转换为大写transform(cmdContent.begin(), cmdContent.end(), cm

2017-09-18 17:28:21 3319

原创 通配符字符串匹配

利用递归,实现了通配符?和* 的字符串匹配 判断代码中为了不区分大小写,使用tolower函数。如果要区分大小写,去掉tolower就好。bool match(const char *pattern, const char *content){ // if we reatch both end of two string, we are done if ('

2017-09-18 13:03:23 626

转载 TCP的连接和断开

一、TCP数据报结构以及三次握手TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。客户端在收发数据前要使用 connect() 函数和服务器建立连接。建立连接的目的是保证IP地址、端口、物理链路等正确无误,为数据的传输开辟通道。TCP建立连接时要传输三个数

2017-08-11 14:34:50 514

原创 C++ 类型隐式转换学习

何为隐式转换?   我的理解是:编译器自动调用某类的构造函数,将其他类转换为此类,以方便明确某些操作。这样说起来比较难理解,直接以例子说明。  先定义一个CMyVector 的 向量类,如下:.h文件:class CMyVector {public: /*explicit*/ CMyVector(int ix = 0, int iy = 0, int iz = 0); /

2017-08-11 09:40:46 294

原创 sln、db、opendb、vcxproj、filters、user文件跟踪说明

一个问题在用git进行版本控制时,发现问题:项目属性 和 提交版本的 项目属性不一样, 但我在版本控制中又添加了.vcxproj文件。 这是为什么呢?解决: 原来我提交的版本时,编译方式是Debug-X86, 而我在新电脑上 pull下来时,打开的vs 编译方式是 Debug-x64, 当然项目属性不一样了。 只需要将编译方式改回Debug-X86就可以了。真是个愚蠢的错误。

2017-07-21 09:31:28 5437 2

原创 RegisterRawInputDevices捕获设备消息

通常我们运用钩子(hook)捕获消息,其实windows还给我们提供了其他方法捕获系统设备消息。今天我们就利用RegisterRawInputDevices 来捕获设备消息。以Win32程序为例: 首先注册设备RegisterRawInputDevices, 然后在消息循环中 添加WM_INPUT 的消息处理函数, 用GetRawInputData转换参数。注册设备先要包含头文

2017-07-20 09:10:18 7074 2

原创 创建一个不显示窗口的Win32程序

只需要将VS自动生成的框架中的: HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);改为 HWND hWnd = Create

2017-07-19 14:42:57 2476

原创 Win32程序的创建流程

前言以前一直没有认真学习过Win32应用程序。现在进行简单学习。先理解下Win32程序的创建过程:主要分为4步: 注册窗口类别、创建窗口、消息循环、编写消息处理函数先看看入口函数:int WINAPI WinMain( HINSTANCE hInstance, //执行实体句柄,往往在其他windows函数中作为入参 HINSTANCE

2017-07-17 09:43:09 344

原创 windows技术----HOOK技术学习

windows钩子函数关于钩子的理解:windows应用程序是基于消息驱动的。windows钩子可以监视指定窗口的某种类型的消息。当监视的消息到达该指定的窗口时,在该窗口处理消息前,钩子函数将截获此消息。钩子函数既可以拦截处理此消息,也可以不做任何处理将该消息传递下去。相关函数:HHOOK hHook = NULL;LRESULT CALLBACK Ke

2017-07-16 16:21:32 806

转载 浏览器的定制与扩展

浏览器的定制与扩展  由于本人在开发中经常要在程序中嵌入浏览器,为了符合自己的需求经常要对浏览器进行扩展和定制,解决这些问题需在网上找资料和学习的过程,我想可能很多开发者或许会遇到同样的问题,特写此文,以供大家参考。在MFC中使用浏览器     在MFC中微软为我们提供了CHtmlView、CDHtmlDialog类让我们的程序很方便的嵌入浏览器和进行浏览器的二次开发,

2017-07-13 21:25:04 1398

转载 钩子(hook)编程

钩子(hook)编程       1.1钩子的实现机制钩子英文名叫Hook,是一种截获windows系统中某应用程序或者所有进程的消息的一种技术。下图是windows应用程序传递消息的过程:如在键盘中按下一键,操作系统将收到键按下消息,把消息放入消息队列,然后消息队列对消息进行派发,发给相应的应用程序,经过应用程序处理后发给操作系统,操作系统再调用相应的应用程序的创建的窗口过程

2017-07-13 17:34:38 710

原创 MFC对话框里利用CHtmlView加载界面(三)————JaveScript 调用 MFC

在 MFC对话框里利用CHtmlView加载界面(二)———— MFC 调用 JaveScript中,我们实现MFC对JaveScript方法的调用。现在我们想既然MFC能调用JaveScript,那么又该如何实现JaveScript调用MFC呢?只有MFC 能和 JaveScript 实现互相调用,那我们完全就可以将HTML作为我们的界面,将MFC作为我们底层逻辑的处理,实现漂亮的界

2017-07-12 08:51:27 1464

原创 MFC对话框里利用CHtmlView加载界面(二)————MFC调用JaveScript

在MFC对话框里利用CHtmlView加载界面(一)中,对如何利用CHtmlView加载网页进行了介绍。本文,我们将在上一篇文章的基础上,对如何利用CHtmlView加载HTML,以及MFC如何调用JaveScript的方法进行讲解。在MFC对话框里利用CHtmlView加载界面(一)中,我们新建了一个继承自CHtmlView的CBaseHtmlView类,本文我们将继续在CBaseHtm

2017-07-11 08:50:30 2676 2

原创 MFC对话框里利用CHtmlView加载界面(一)————加载网页

简单了解下CHtmlView类,CHtmlView类是MFC类,它继承自CView,属于MFC视图类。但我们看它的具体实现时,我们会发现其最大的本质在于IWebBrowser2(WebBrowser ActiveX 控件)的封装。即其实质是:利用IWebBrowser2,有效地使应用程序成为一个 Web 浏览器。当然里面具体的封装细节,涉及到了大量的COM组件和ActiveX 控件知识

2017-07-10 08:44:56 6939 3

原创 MFC对话框里利用CHtmlView加载界面(四)————分层窗口设置

在学会了 利用CHtmlView 在MFC对话框上显示网页,并支持JavaScript 和 MFC 之间的互相通信后。 当然就想: 我们为什么不能只用HTML 作为前端界面, 而底层用MFC实现逻辑呢? 这样就完全不需要用到MFC对话框的界面风格了。 本文就讲告诉大家如何实现 用HTML代替MFC的对话框界面。

2017-05-23 18:48:26 6034 3

转载 对进程地址空间的一点认识

对进程地址空间的一点认识在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当

2017-05-03 09:19:14 249

原创 SQL语句多表联合查询

本周之前,对于数据库的使用仅限于简单的增删改查(insert、delete、updata、select),而这一周由于工作需要,对一些sql函数、sql语句多表联合查询、T-SQL语句基本语法、存储过程编写等有了简单的学习,现将一周所学进行总结、归纳。本文主要总结sql语句中的 常用sql函数和多表联合查询知识。直接通过实例进行讲解。

2017-03-18 12:25:57 46986

原创 网络编程之 我对windows socket的理解

首先socket为内核对象,它的资源内存分布是在操作系统内核区域, 应用程序是不可间的。 对内核对象不理解的可见我写的:我对内核对象的理解 http://blog.csdn.net/qq_20828983/article/details/61921765 我们编程时 只是通过系统API创建并获取返回的一个整型句柄(又叫文件描述符)。 通过这个整形句柄在内核句柄表中的映射, 调用系统API就可对其进行操作。

2017-03-14 11:56:27 471

原创 我对内核对象的理解

内核对象 就是在操作系统内核中进行资源分配和管理的一种数据结构。 应用程序是无法在其管理的内存中找到这些资源并改变的。也就是说内核对象是属于某个进程的,而是属于操作系统的。

2017-03-13 17:04:32 2639 1

原创 bat批量运行脚本-文件移动-复制-环境变量修改

1、找到此脚本目录下的 包含DL_*_Data*字符串的文件夹 名称。 在此以DeepLearnData表示2、找到此脚本目录下的 包含DL_CPU*字符串的文件夹名称。在此以DeepLearn表示3、将包含DL_*_Data*字符串文件夹下的data文件夹 移动 到包含DL_CPU*字符串的文件夹的\Lib 中4、将包含DL_CPU*字符串 的文件夹下的 内容 复制到 C:\DingHan\5CDeepLearn 目录下5、在环境变量中添加 PythonPath变量 并 赋值C:\DingHan\

2017-03-10 15:57:34 2107

原创 Visual C++ TCP网络编程学习

Visual C++网络编程学习套接字地址结构体:  struct sockaddr_in{     short  sin_family; //指定地址格式,用AF_INET表示TCP/IP协议     unsigned short sin_port; //端口号码     struct in_addr  sin_addr; //IP地址     char  sin_z

2016-08-22 11:24:39 547

原创 MFC 绘图坐标系

MFC 绘图坐标系学习1、坐标系及其定义主要为三个坐标系:窗口坐标系、客户区坐标系、屏幕坐标系窗口坐标系: 以对话框窗口左上角为坐标原点,包括窗口的标题栏、菜单栏、工具栏等。客户区坐标系: 客户区坐标都必须有一个客户对象,是以客户对象左上角为坐标原点。              客户对象可以为一个对话框窗口的客户区,也可是某个控件的区域。屏幕坐标系: 以电脑屏幕左上角为

2016-08-22 11:12:41 3228

原创 MFC自定义消息

自定义消息响应流程1、增加自定义消息宏   #define WM_MYMESSAGR WM_USER + 101   (一般定义在stdafx.h文件中)2、添加消息响应函数声明    1、在对话框类的头文件(...dlg.h)增加一个回调函数声明:    afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);

2016-08-22 11:10:05 261

原创 MFC添加工具栏

MFC添加工具栏MFC工具栏类名:CToolBarCtrl1、准备工作:   1、在资源文件中添加三张Bitmap,注意大小。   2、在资源文件中添加StringTable,如果已有,就在StringTable上追加String      (需要几个工具栏按键,就添加几个String)2、初始化函数:void CDHanalysisDlg::initToolB

2016-08-22 11:07:54 2210

原创 MFC对话框添加菜单栏

添加菜单栏步骤菜单栏CMenu:1、添加菜单   1、在资源文件中 添加Menu资源,确定ID   2、可在Menu上插入相关菜单2、绑定对话框   在资源文件中找到对话框Dialog,在其属性上,添加Menu的ID3、添加菜单响应函数   两种方法     1、在项目-类向导上,确定类名后,在命令-对象上找到相应菜单Id        如:ID_Menu_

2016-08-22 11:05:02 541

原创 MFC动态绘图+OpenCV画图

本程序运用到了OpenCv库,采用2.47版本。、本程序中也充分运用到了MFC框架下的两个坐标系:屏幕坐标系和客户区坐标系。本程序利用MFC画图技术+OpenCv技术实现功能:1、通过文件对话框,利用OpenCv将图片加载并刷新到MFC Picture控件上。根据OpenCv载入图片数据得到MFC BitMapInfo 位图信息。LPBITMAPINFO CDrawAndOpenCVDlg::Ctr

2016-08-22 10:43:23 5923

原创 C++模板类链表实现

模板类链表 编写过程参考了: http://blog.csdn.net/qinmusiyan/article/details/39830195 头结点不为空 节点计数从1开始 由于是模板类,声明和定义都放在头文件里 编写注意事项: 每个节点增加时有且只能定义一个分配一个动态内存(new) 时时判断头结点是否为空,如果为NULL,插入时必须在h

2015-11-03 20:59:06 4333 2

MFCHtmltest

本文实现了MFC对话框和JavaScript(HTML)的交互,具体可参加我的博客:MFC对话框里利用CHtmlView加载界面(三)————JaveScript 调用 MFC

2017-07-16

CHTMLDome2

利用CHtmlView类,实现了MFC 对话框和 HTML(JaveScript) 的交互

2017-07-11

CHTMLDome1

利用MFC类CHtmlView,实现网页的加载

2017-07-10

MFC动态绘图+OpenCv读取保存绘制图片

本程序利用MFC画图技术+OpenCv技术实现功能: 1、 通过文件对话框,利用OpenCv将图片加载并刷新到MFC Picture控件上。 2、实现对Picture控件进行动态画图,本实时加载到图片数据上进行显示。 3、可实现对画图颜色和线宽的选择,画图方式有矩形和线。 4、可将最终画的图片进行本地保存,在画图过程还可以进行还原,全部删除前面所画图形。

2016-08-22

MT一维正演

大地电磁一维正演程序,采用c语言编写,需要输入模型文件和周期文件

2015-12-10

空空如也

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

TA关注的人

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