自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (6)
  • 收藏
  • 关注

原创 VTK几个坐标的测试

获得VTK三维视图的几个主要位置的世界坐标

2022-09-11 23:39:03 8

原创 armadillo + openblas 编译

armadillo + openblas 编译

2022-08-25 12:32:36 36

原创 Windows 为什么需要资源句柄

Windows 为什么需要资源句柄

2022-07-29 14:32:46 98

原创 弥散张量分析开源软件 DSI Studio 简体中文汉化版可以下载了

弥散张量分析开源软件 DSI Studio 简体中文汉化版可以下载了

2022-07-17 21:03:24 386

原创 VC开发非MFC程序内存泄漏跟踪代码

WINDOWS 环境下使用VC开发非MFC程序内存泄漏跟踪代码

2022-07-03 18:26:59 54

转载 转载:VTK笔记-裁剪分割-不规则闭合圈选裁剪-vtkSelectPolyData类(黑山老妖)

 vtkClipClosedSurface类使用平面集合剪裁闭合曲面。

2022-06-26 18:27:03 185

转载 转载:VTK笔记-裁剪分割-三维曲线或几何切割体数据(黑山老妖)

https://blog.csdn.net/liushao1031177/article/details/118419221

2022-06-26 13:58:04 164

原创 Slicer的传输函数参数值

<?xml version="1.0" encoding="UTF-8"?><MRML> <VolumeProperty selected="false" hideFromEditors="false" name="CT-AAA" gradientOpacity="4 0 1 255 1" userTags="" specularPower="10" scalarOpacity="12 -3024 0 143.556 0 166.222 0.686275 214.389.

2022-05-29 18:37:35 30

原创 linux下抓取C++ throw调用栈

使用API钩子技术,抓取throw调用的调用堆栈。1. hook_cxa_throw-lys.hpp#pragma once#include <dlfcn.h>#include <cstddef>#include <exception>#include <signal.h>#include <execinfo.h>#include <ucontext.h>#include <thread>#i

2022-05-25 22:16:26 91

原创 发布本人的第一个CSDN视频,VTK的

Vtk 3D Pro 2022-05-21 23-02-40-CSDN直播

2022-05-22 00:09:28 29

原创 googletest 自动化测试例子合集

下面是本人的一些测试结果,仅作展示

2022-05-10 16:44:10 705

原创 VTK 3D体绘制颜色传输效果展示

下面是本人的一些测试结果,仅作展示

2022-05-07 16:52:43 128

原创 简单编程实现QT程序黑色主题显示

代码如下int main(int argc, char *argv[]){ QApplication a(argc, argv); //QSurfaceFormat::setDefaultFormat(QVTKOpenGLStereoWidget::defaultFormat()); QPalette darkpalette; a.setStyle(QStyleFactory::create("Fusion")); darkpalette.setColor..

2022-05-04 15:58:38 533

原创 C++ 并发编程练习15 “最简单的线程池”

下面的代码展示了一个简单的线程池。#include <atomic>#include <functional>#include <iostream>#include <mutex>#include <queue>#include <thread>#include <vector>template<typename T>class thread_safe_queue{private:

2022-05-02 16:32:59 854

原创 C++并发编程练习14 “异步任务测试”

使用feature特性,可以获得异步执行的效果。如下面的例子#include <iostream> #include <future> #include <chrono> #include <thread> int loopType (int from, int to) { for (int i = from; i != to; ++i) { std::cout <

2022-05-02 15:13:10 838

原创 在Linux Deepin OS 下编译ParaView的步骤

首先编译OPEN-MPIgit clone https://github.com/open-mpi/ompi.gitcd ./ompigit submodule update --init --recursivesudo apt-get install autoconfsudo apt-get install libtoolsudo apt-get install flex./autogen.pl./confiugremake再下载ParaView源代码git clone h..

2022-04-30 14:54:53 233

原创 在Windows/QT环境编程中同时catch C++异常和SEH异常

代码如下://.hclass CONTROLLER_API CExceptionGuard{public: CExceptionGuard(); ~CExceptionGuard();private: class Impl; Impl* prd;};// .cppclass SE_Exception : public std::exception{private: const unsigned int nSE;public: SE_Exception() noe

2022-04-28 12:10:40 1480

原创 在Windows中编译libevent库步骤

1. 从下面的网页中下载和安装 Win64OpenSSL-1_1_1n.msi , 全部照缺省设置安装即可Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions (slproweb.com)2. 到git下载libevent库https://github.com/libevent/libevent.git33. CMake配置libevent项目勾选 EVENT__DISABLE_MBEDTLSOPE

2022-04-27 00:12:38 1624

原创 编译成功一个VTK/CTK应用

小小庆祝一下。费了不少周折,尤其是QtCreator .Pro文件中路径的配置,还有一个经验是.Pro文件尽量保持清简整齐,否则很可能编译链接时遇到莫名其妙的各种错误。

2022-04-26 01:13:02 86

原创 DLL远程注入一则

1. 线程注入一注入的可行性 kernel32.dll 和 user32.dll 是两个在大部分程序上都会调用的 DLL 同一个 DLL,在不同的进程中,不一定被映射(加载)在同一个内存地址下。但是 kernel32.dll和 user32.dll 例外。他们总是被映射到进程的内存首选地址因此,在所有使用这两个 DLL 的 进程中,这两个 DLL 的内存地址是相同的。我们在本进程获取的 kernel32.dli 中函数的地址, 在目标进程中也是一样的。2. 涉及的 API OpenProce

2022-04-24 00:14:24 117

原创 C++并发编程练习13 “线程安全栈设计”

使用mutex锁,设计一个线程安全的stack,示例如下#include <exception>#include <memory>#include <mutex>#include <stack>struct empty_stack : std::exception{ const char* what() const throw();};template<typename T>class threadsafe_sta

2022-04-23 17:57:56 546

原创 C++并发编程练习12 “在跨线程中使用函数对象(指针)”

需要谨慎防止被保护的对象意外泄露到外界函数被更改状态。代码示例如下:#include <functional>#include <iostream>#include <mutex>#include <string>#include <thread>struct TData{public: int n; std::string str;public: TData() { n = 0; str = "Mout

2022-04-23 16:28:19 688

原创 C++并发编程练习11 “互斥量”

在多线程开发中,常遇到共享数据需要保护的问题,我们可以使用互斥量std::mutext类来解决这个问题,示例如下#include <chrono>#include <iostream>#include <mutex>#include <thread>#include <vector>struct scoped_mutex{ scoped_mutex(std::mutex& mtx) : mt(mt

2022-04-23 15:14:13 492

原创 C++并发编程练习10 “线程管理之线程ID”

std::thread有一个get_id()函数可以唯一标识系统中线程。示例如下#include <chrono>#include <iostream>#include <string>#include <thread>#include <vector>std::thread::id master;void func(int i){ std::string msg = std::to_string(i);

2022-04-23 00:10:48 809

原创 C++并发编程练习09 “线程管理之线程数目动态确定”

我们可以动态计算并创建合理的线程数目, 代码示例如下#include <algorithm>#include <functional>#include <iostream>#include <numeric>#include <thread>#include <vector>template<typename Iterator, typename T>struct accumulate_block{

2022-04-22 23:50:12 40

原创 C++并发编程练习08 “线程管理之线程容器”

我们可以使用容器保存一组线程,如下面的vector装入一组线程:#include <chrono>#include <iostream>#include <string>#include <thread>#include <vector>void func(int n){ std::string str = std::to_string(n); str += '\n'; std::cout <&lt

2022-04-22 22:40:44 146

原创 C++并发编程练习07 “线程管理之线程scoped”

线程scoped在某些场合还是很有用的,可以简化编程,不易出错。示例如下:#include <exception>#include <iostream>#include <thread>struct scoped_thread{ std::thread th; scoped_thread(std::thread&& t) { if (!t.joinable()) throw std::runtime_error("threa

2022-04-22 22:19:32 129

原创 C++并发编程练习06 “线程管理之线程对象转移“

线程对象可以和一般对象一样,其所有权可以被转移,示例如下:#include <iostream>#include <thread>void get(std::thread&& t){ t.detach(); int a; std::cin >> a; std::cout << a << std::endl;}void task(const char* sz){ std::cout << s

2022-04-22 22:03:47 117

原创 C++并发编程练习05 “线程管理之传递引用参数给任务函数与std::ref绑定”

传递引用时需注意,如下面代码注释中所述:#include <iostream>#include <thread>void task(int& n){ n *= 2;}int main(){ int a = 100; //注意必须用std::ref绑定,否则由于thread构造函数无法识别,它将传入a的副本的引用给task函数 std::thread t(task, std::ref(a)); t.join()

2022-04-22 20:31:57 214

原创 C++并发编程练习04 “线程管理之传递参数给任务函数”

我们可以对不同的多线程任务函数传递对应参数。其参考代码如下:#include <iostream>#include <thread>void task(int n, const char* message){ std::cout << n << "," << message << std::endl;}int main(){ std::thread t(task, 1, "something hap

2022-04-22 20:17:08 231

原创 C++并发编程练习03 “线程管理之线程守卫”

包装类对象析构时执行线程#include <iostream>#include <thread>struct thread_guard{public: std::thread& t; explicit thread_guard(std::thread& _t) : t(_t) {}; ~thread_guard() { if(t.joinable()) t.join(); } thread_guard(thread_guard&

2022-04-22 10:26:31 74

原创 C++并发编程练习02 “线程管理之启动线程”

启动线程有detach()和join()两个函数,前者是异步启动,后者是同步启动并等待结束。#include <iostream>#include <thread>struct task{ int& i; task(int& i_) :i(i_) {}; void operator()() { for (int j = 0; j < 200; j++) std::cout

2022-04-22 10:12:38 57

原创 C++并发编程练习01 “Hello World“

#include <iostream>#include <thread>void sayHello(){ std::cout << "Hello World!\n";}int main(){ std::thread t(sayHello); t.join(); return 0;}

2022-04-22 10:05:50 34

原创 使用批处理文件递归删除C++项目中的.git文件夹和VC生成文件

使用.bat文件可以方便的进行如标题所示的文件。.bat文件的内容可以象下面这样@echo Offdel /F /s /a *.suo *.dll *.exe *.sha512 *.db *.ncb *.user *.pdb *.netmodule *.aps *.ilk *.plg *.opt *.idb *.obj *.sbr *.exp *.tlh *.tli *.clw *.pch *.res *.sdf *.ipch *.log *.tlogsetlocal enabledela

2022-04-20 17:57:00 212

原创 推荐一个在QT环境中学习OpenGL的开源项目MathMod

MathMod源代码的链接是:GitHub - parisolab/mathmod: Mathematical modelling software使用QtCreator打开.pro文件,直接编译后就能运行。其源代码和清晰,是初学OpenGL的一个不错的选择。该软件的源码目前仍然在升级之中,可以持续跟进学习。下面的截图是本人对界面布局稍作了更改后的运行图:...

2022-04-16 13:32:39 147

原创 在Linux下(深度OS)中编译运行3D Slicer软件

在深度OS(Linux)中编译运行3D Slicer的步骤

2022-04-16 13:10:40 807

原创 C++接口类继承思考一则

C++一一般不推荐多继承,但继承接口类则不否定。由于接口类自身没有构造和析构的成本和问题,所以往往较为安全,就有较大的灵活性。接口类也允许有静态成员变量,二静态成员变量的初始化和结构不是类对象本身的职责,也就是说它属于类,而不属于对象。最近本人在设计和开发一个面向接口编程的软件系统,对接口类的灵活性,和它带来的软件专业领域隔离和软件模块隔离的好处,以及体现出来的最少知识原则有了切实的体会,推荐网友们考虑这一设计模型。比如我在一个MVC架构种,Model层有很多IModel接口的实现类

2022-04-09 21:32:46 443

原创 多线程单例模式一则

多线程单例创建对象时,需要加锁保护。其示例代码如下:#include <chrono>#include <iostream>#include <mutex>#include <thread>class TSingleton{public: static TSingleton* ins() { if (__instance != NULL) return __instance;

2022-04-05 15:50:54 115

原创 MFC Ribbon定制方法一则

本文代码来自Adding New Theme Variations to the MFC Ribbon (CMFCVisualManager) - CodeProject下面的主要类代码出自上述文章,涉及权力由该作者所有1. 头文件 MFCVisualManagerDeviant.h#pragma once// CMFCVisualManagerDeviant command targetclass CMFCVisualManagerDeviant : public CMFCVisu

2022-04-02 09:52:41 326

原创 简单的Windows套接字异步编程

1. 头文件#pragma once#include <functional>#include <sstream>class CWinAsyncServer{public: //ret 0: SUCCESS //receiver和sender会运行在各自的线程中,其线程由这个函数内部启动。 int createServer(int port, std::function<void(SOCKET)>& receiver, std::fun

2022-03-31 16:33:16 1549

LCC编译器VC源码包

LCC编译器源码,是一款C语言编译器,可以使用VC编译, 配合nasm可以开发Windows控制台应用程序

2015-10-02

VS2008 运行库源码学习手册

做成chm文档的C 运行时刻库源码 单个文档,导航容易,可在电脑和平板上阅读,后者建议使用QQ阅读

2013-08-22

TxtScript- C/CPP语法着色编辑器

C C++ 语言文件浏览与编辑工具,支持语法着色,附完整源代码和编译好的可执行文件 需要 VC2008 SP1 包支持。 Ribbon界面。 有好的建议或者改进欢迎提供给本人

2013-01-23

OllyDbg使用图文教程

OllyDbg使用图文教程,较详细,是我苦心从国外网站找到的,感兴趣的可以下载看看

2008-10-26

Exceptional C++

Exceptional C++

2007-04-11

The C++ Standard Library

The C++ Standard Library

2007-03-29

空空如也

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

TA关注的人

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