自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 WOW64 IsWow64Process GetNativeSystemInfoWindows System32 SysWOW64

所以综上所述,Wow64是64bit的Windows系统里面的一个模拟器技术名字(32bitOS没有),它存在的意义是保证32bit的程式可以在64位Windows系统上正常运行。32位程式在32位Windows OS下运行、64位程式在64位Windows OS下运行、64位程式在ARM64位 Windows下运行。所以得出结论:当参数2值是false时,IsWow64Process这个方法并不能准确的判断出Windows OS的Bit。这个方式我比较建议使用,因为不管它对32和64位程式都是通用的。

2023-03-07 17:07:56 850

原创 wchar* char*相互转换

其中主要用到的就是WideCharToMultiByte(双字节转单字节)和MultiByteToWideChar(单字节转双字节)这两个函数,至于为啥要调用两次,第一次是表示获取转换后的字符串长度,其中第四个参数设为-1表示的就是返回转换到字符串结尾的需要的长度,第二次调用第五个参数和第六个参数分别表示,转换后字符串存放的buffer和Size,保持和前面的获取的一致即可,至于为啥申请空间的时候长度加1,是为了让最后一个字符为'\0',符合字符串以'\0'结尾。

2023-02-09 18:04:23 977

原创 QT--Connect 第五个参数

发送信号之后,槽函数不会立刻被调用,等到接收者的当前函数执行完,进入事件循环之后,槽函数才会被调用。多线程环境下一般用这个,这个可以理解成是异步执行,emit语句后的代码将在发出信号后立即被执行,无需等待槽函数执行完毕。,这个可以理解成是同步执行,emit语句后的代码将在所有槽函数执行完毕后被执行。Qt::BlockingQueuedConnection:槽函数的调用时机与Qt::QueuedConnection一致,Qt::DirectConnection:槽函数会在信号发送的时候直接被调用,槽函数。

2022-11-15 11:11:41 912

原创 QT--知识点(编码、中文乱码)

1、QTextCodec类,该类主要是提供字符串的编码格式切换,主要函数有以下三个:a、QTextCodec::codecForName("xxx") 表示创建一个编码格式为xxx的编解码器,返回一个QTextCodec对象,怎么用呢?比如说我们已知文本的格式为utf-8,但是由于QT以Unicode格式存储,所以需要将utf-8转换为Unicode,那么首先我们第一步要做的就是,创建一个utf-8的编码器。b、toUnicode("xxx"),将xxx字符串通过先前创建的编码器转换成Unicode格式,这

2022-06-13 17:36:52 1088

原创 QT----事件循环,阻塞等待一段时间,非阻塞等待一段时间

QT事件循环类QEventLoop, Qt作为一个跨平台的UI框架,其事件循环实现原理, 就是把不同平台的事件循环进行了封装,并提供统一的抽象接口。 Application类中,除去启动参数、版本等相关东西后,关键就是维护了一个QEventLoop,Application的exec就是QEventLoop的exec。不过Application中的这个EventLoop,我们称作“主事件循环”Main EventLoop。一般我们的事件循环都是由exec()来开启的,如下:   这些都开启了事件

2022-06-10 17:45:29 4860

原创 QT-——QTimer QMessageBox 线程 主线程 UI之间的联系

大家如果经常开发QT Application程序,肯定会将一些耗时的动作放到线程中,主线程再去做其它的事情,那么就会存在这样的一个问题,线程是否和主线程一样,是否可随意的调用UI?随意的创建类?鉴于这两个问题,请继续往下看。首先说线程吧,我有一篇博客已经介绍了3中使用方式,我在这里只说信号和槽的那种,如果connect的第五个参数设为Qt::DirectConnection则槽函数处于线程中,如果是Qt::QueuedConnection则槽函数处于主线程中,如果该槽函数需要执行一些很耗时的动作,那么就

2022-05-17 17:51:05 957

原创 LoadLibrary库的位数和项目位数的关系

我们都知道项目是分为32(x86)位和64位的,DLL也是这样,今天发现一个问题就是,64位的项目,使用LoadLibrary动态链接一个库时,报错,GetLastError为193,什么意思呢?就是说当前库的位数和项目位数不匹配,也就是说这个库为32位的,无法再64位的项目中使用,同理,64位的库也不能在32位的项目中使用,需要保持位数一致。PS:介绍一个获取DLL位数的指令,dumpbin /headers XXX.dll,这个dll传绝对路径,然后就可以查看其位数。VS 2010:Tools-

2022-04-02 15:51:33 365

原创 C++————CMD调用问题

先上一段代码,其中的Excute函数是我用ShellExcute封装的一个函数:WCHAR szCmd[MAX_PATH] = L""; WCHAR szExcuteCmdLine[MAX_PATH]=L""; WCHAR szSystemDir[MAX_PATH]=L"";SHGetSpecialFolderPath(NULL, szSystemDir, CSIDL_SYSTEM,false); wsprintf(szCmd, L"%s\\cmd.exe",szSystem...

2020-12-25 16:40:05 369

原创 QT----QThread卡UI问题

1、其实UI被卡住的原因很简单,是因为主线程里存在了十分耗时的动作,处理方法有很多,一般为了代码简洁,都会把这些动作写到一个线程中去,即开辟另外一个线程去处理,这样UI就不会卡住了。2、我这里想说的是,关于QThread有几种写法,大家比较常用的都是自己建一个类继承QThread然后重写run函数,这个很推荐使用,因为调用start函数后,就开辟了一个线程;还有一种偷懒的写法,不需要建一个类,只需要把耗时动作和QThread的started()信号绑定即可,但是注意,connect中的第五个参数必须是Q

2020-12-21 17:05:05 2322

原创 C++——库的创建和调用

项目中经常会用到DLL库,下面来介绍一下C++库的创建:1、首先新建一个Win32控制台应用程序,然后选择dll==》勾选导出符号==》不勾选预编译头文件,删除stdafx.h stdafx.cpp targetver.h dllmain.cpp文件,然后build即可生成dll,另外在改变dll的生成路径可在设置界面改变General下面的Output Directory,改变lib的生成路径可在,Linker下面的Advanced中的Import Library修改,其中$(SolutionDir)

2020-12-14 15:21:19 1394

原创 QT--自定义控件创建

老是忘记,记录一下。一般大一点的QT项目都会分很多个模块,一个主框架肯定是显示窗口的,里面的模块会独立出去给其他人做,那么问题就来了,怎么把别的模块的东西放到主框架里面来?方法就是生成带ui的动态库,然后将主框架中的模块窗口提升成模块类名称即可实现模块集成到主框架中,具体步骤看下面:首先你需要建一个QT Class LIbrary项目,注意需要勾上GUI 和 Widggets模块,然后删除其中除了XXX_global.h以外的所有文件。第二步,建一个名字和Lib项目一样的QT Apllicatio.

2020-05-21 10:15:24 213

原创 字节序

字节序有两种方式存放,一种是大端,一种是小端,所谓大端是指将所存的数按照高位存在于低地址,低位存于高地址的方式存放,就是说比如一个int的数1234 用十六进制表示就是0x01 02 03 04,如果是按照大端方式存储的,那么内存中排列就是01 02 03 04,小端就是,高位存于高地址,低位存于低地址,那么就应该是04 03 02 01,至于自己电脑是采用的哪个方式,可以自己定义一个变量,debug一下,看一下改变量的内存地址即可发现是那种模式(VS查看内存的步骤:调试模式下,Tools->窗口==

2020-05-11 15:02:36 129

原创 关于VS修改项目名称方法

之前看过几个博客,其中有一个博客写的挺好的,网址:https://blog.csdn.net/qq_33431368/article/details/78985988但是我今天要说的是,那个博客过于详细,要改很多东西,一些小tool可能改起来比较容易,但是对于大一点的tool改起来就比较烦了,那个博客改的步骤就是,先改.sin文件名字,然后编辑把里面名称替换,然后进根目录下,同样方法改.vcx...

2020-04-17 16:28:41 2234

原创 QDateTime

一个小知识点,记录一下:通常如果需要获取电脑上得时间,可以用QDateTime::currentTime()来获取返回值,后面的toString操作可以分开也可以不分开:比如QDateTime dt =QDateTime::currentTime().toString("yyyy-MM-dd hh:mm::ss")或者QDateTime dt =QDateTime::currentTime()...

2019-09-24 10:04:23 509

原创 QT——图标设置

图标无非有三种,一种是可执行的exe图标,一种是运行后窗口的左上角图标,一种是任务栏里面的程序显示的图标。其中后面两个其实设置方法是一样的,通过使用QT提供的 setWindowIcon( const QIcon &icon)即可实现效果,这里需要注意的是QIcon()里面的参数需要是已经添加到程序的资源文件.src中,不然即使你路径是对的程序也识别不出来,至于这个使用对象,经过...

2019-09-11 16:15:19 587

原创 C++一些容易忘得东西

看了一下C++基础知识,发现有些东西很容易忘,下面稍微看一下:1、重载、重定义、重写这三个东西得区别,他们都是在基类和派生类中发生的,重载是说得是你函数名是一样得,但是你得返回值或者参数类型有区别这样的继承后的函数就称为重载,这种方式编译器在编译期间就知道要执行的函数,称为静态链编。重定义是指函数一模一样你相当于把基类的函数给完全隐藏了,用的自己的。重写是在多态中使用的,是把基类中的某个...

2019-06-10 14:33:44 175

原创 VTK入门——VTKCamera

最近写项目时被这个camera搞得晕头转向的,先介绍下camera的一些常用接口1、ParallelProjectionOn()开启平行光投影,需要注意的时一旦你用了这个你后面对camera的setpostion()、zoom()这些操作都无法正常生效,想要改变大小你只能通过SetParallelScale(int temp)这个数表示着camera到图像距离越小图像就越大2、Orthog...

2019-03-20 14:15:44 2573 1

原创 获取硬件信息——绑定主板号(加密软件)

首先说一下获取主板号的方法,windows命令行输入wmic BaseBoard get SerialNumber即可查看自己电脑主板号下面介绍具体代码来实现获取主板号,下列是头文件.h#if !defined(AFX_DD71A3C0_A52F_4C38_B062_8E05785607DC__INCLUDED_)#define AFX_DD71A3C0_A52F_4C38_B062_8...

2019-03-13 11:12:31 3788 3

原创 inno_setup编译器打包

先新建一个脚本,然后狂点下一步,到文件选择界面,先添加需要打包得exe文件,在把改工程下得所有dll lib文件添加,在把releasexia相应得文件夹添加

2019-03-04 16:50:37 262

原创 VTK窗口设置贴图--vtkImageMapper

直接上代码vtkImageMapper* temp_mapper = VtkImageMapper::New();vtkPNGReader* temp_reader = vtkPNGReader::New();vtkActor2D* temp_actor = vtkActor2D::New();temp_reader->SetFileName(path);temp_map...

2018-12-21 10:24:03 1051

原创 相对路径、绝对路径的用法

相对路径 用正斜杠 / 表示  ./表示当前路径 ../表示上一级目录绝对路径 用反斜杠 \ 表示 由于 \ 代表转义字符 所以需要用\\来区别==》\\ <==> / 

2018-11-30 16:15:46 319

原创 QT_信号 界面提升注意事项

连接信号与槽时只能写参数类型 不能写参数名 不然无法连接界面提升后如果修改了ui 不仅仅要换ui_xxx.h还要换对应的动态库 不然换不了

2018-10-29 09:28:11 209

原创 QT——小结

写项目的时候用QT遇到了几个小问题,一个mainwindow窗口我想在里面的工具栏里面添加部件,我一开始不想用button,用的是action出现了一个问题当我往其中一个action添加menu菜单栏的时候发现虽然有setMenu这个函数但是运行的时候并能下拉,就一个倒三角符号。。。尴尬,只能老老实实的用button然后添加到工具栏里面,在设置他的三态样式,很麻烦,所以我不喜欢用。相关代码如下:...

2018-08-23 16:42:18 204

原创 QT__如何给新建的mainwindow设置一个布局

由于mainwindow自带布局的特殊性,想要为其添加布局直接设置不行,会报错,感觉代码写了没作用,我们需要用一个widget来简介设置,然后使用mainwindow的setcentralwidget函数来间接的设置布局,代码如下,//新建一个窗口并在里面放一个vtk窗口用来显示3D图像QMainWindow * aWin = new QMainWindow(this);QWidget...

2018-08-20 16:44:16 2453

原创 QT——给按钮添加菜单栏

把菜单给按钮就行了,按钮是有setmenu函数的。QMenu * mymenu = new QMenu;mumenu->addAction(actions);btn->setMenu(mymenu);

2018-08-15 13:44:05 5634

原创 QT——解决读取/保存文件含有中文路径的问题

废话不多说 直接上一波代码#include <qtextcodec.h>QString dir = QFileDialog::getExistingDirectory(w, QObject::tr("open Directory"), "/home",QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);...

2018-08-14 09:52:13 14793 9

原创 QT——mainwindow使用布局没反应的解决

由于继承的是mainwindow所以必须要知道的是Qmainwindow本身自带一个主窗口centralWidget所以布局需要设置在它的上面,比如如下QHBoxLayout *layout = new QHBoxLayout(this);layout->addWidget(ui->pushButton); layout->addWidget(ui-&gt...

2018-08-10 13:55:24 3527 3

原创 QT——QPainter的使用

Qpainter创建的对象只能在绘画事件paintEvent(QPaintEvent *event)里使用 使用方法如下QPainter painter(this);    painter.setPen(Qt::red);    painter.drawLine(263, 470, 1200, 470);    painter.drawLine(730, 80, 730, 860); ...

2018-08-09 15:09:16 5371 1

原创 VTK入门——用交互器interactor容易出现的问题

一般交互器是用vtkRenderWindowInteractor类型new出来 然后在用imageViewer->SetupInteractor(renderWindowInteractor)但是在QVTKWidget窗口里我们只能用vtk->GetInteractor()->SetInteractorStyle(style);所以说只能用vtkInteractorStyleIm...

2018-08-03 09:05:17 2948 1

原创 VTK入门—QVTKWidget导入/显示序列图像(不适用于CT图像)

//生成图像序列的文件名数组    vtkSmartPointer< vtkStringArray > fileArray = vtkSmartPointer< vtkStringArray >::New();    char fileName[128];    for (int i = 1; i < 100; i++)    {        sprint...

2018-08-03 08:56:32 1410

原创 VTK入门—QVTKWidget显示图像

窗口是在ui界面拖进去的和之前的界面不一样 那个界面是手动创建的vtkRenderWindow vtkSmartPointer<vtkDICOMImageReader> reader = vtkSmartPointer<vtkDICOMImageReader>::New();        reader->SetFileName(filename.toStdS...

2018-08-02 14:00:13 8697 17

原创 VTK—入门 导入/显示/保存图像

#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2);VTK_MODULE_INIT(vtkInteractionStyle);VTK_MODULE_INIT(vtkRenderingFreeType);#include <vtkRenderer.h>#include <vtkRender...

2018-08-01 08:38:02 2103 1

原创 c代码写聊天室喔的思路 我遇到的段错误

登陆和注册 下次发定义一个结构体 用来存放id password用来接收客户机的登陆信息//typdef  user{int id;char password[1024];}User;建立一个循环链表 用来存放已经上线的客户机套接字描述符sockfd 以及他的账号ID 账号ID分别用来群发和私聊//typedef struct list{int sockfd;int id;struct

2018-01-22 20:58:24 159

空空如也

空空如也

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

TA关注的人

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