如何确定gcc是否支持c11,c14,c17

实际工作中,可能会遇到c++的一些高级特性,例如std::invoke,此函数是c++17才引入的,如何判断当前的gcc是否支持c++17呢,这里提供两种办法。1.根据gcc的版本号来推断gcc --version,可以查看版本号,笔者的电脑,gcc的版本号是8.3.0,然后查看8.3.0是什么时候发布的,查出是2019年发布的,从而推断出是支持,但是不是十分肯定,所以接着看第二种方法2.直..._gcc c17
分类: 其他 发布时间: 08-03 23:31 阅读次数: 0

go.sum中,h1是如何计算出来的

转发:https://github.com/vikyd/note/blob/master/golang-checksum.md里面有详细的代码,我具体操作过,go.mod的h1和整个文件夹的h1都可以进行计算_go.sum h1
分类: 其他 发布时间: 08-03 23:31 阅读次数: 0

linux下sh脚本/bin/bash^M问题

今天在windows下写sh文件,放到linux上执行报错,如下所示:于是查了下,windows下以\\r\\n新起一行,其中\\r表示回车,回车的意思就是回到行开头,\\n是换行;而linux上\\n表示新起一行,并自动回车, linux上不需要\\r,于是linux下会多出\\r,在表示上显示的就是^M,这个符号是Linux等系统下规定的特殊标记,是单独的符号,不是 ^和M两个符号的组合,linux..._/bin/bash^m:ba
分类: 其他 发布时间: 08-03 23:30 阅读次数: 0

qt中的no-stringliteral

这些天在做qt界面的国产化迁移,从windows迁移到uos系统,windows下qt的版本是5.9.6,uos环境qt的版本是5.11.3,迁移后,有一处ui文件生成的.h编译不过,比如ui的名称是UnLockDlg.ui,经过uic编译后的名称为ui_UnLockDlg.h,然后make编译时报错,打开文件,报错的行为红色方框的这行,下面是具体的报错信息。no known conversio..._no-string-literal
分类: 其他 发布时间: 08-03 23:30 阅读次数: 0

qt中父进程窗口嵌入子进程产生的窗口

笔者从事客户端开发工作,客户端有很多模块,比如视频预览,视频回放,我这里采取的是多进程架构,客户端框架是一个进程,视频预览是一个进程,视频回放是一个进程,客户端框架负责将视频预览和视频回放产生的窗口嵌入。工作流程如下:1.编写一个基于QWidget的工程,产生的窗口作为父窗口2.编写一个基于QWidget的工程,产生的窗口作为子窗口,其中子窗口的风格要求是 Qt::CustomizeWind..._qt启动子进程
分类: 其他 发布时间: 08-03 23:30 阅读次数: 0

任务管理器中查看文件被哪个进程占用

我们应该会经常遇到这样的情况,当删除一个文件或者文件夹时,提示无法删除,文件被占用的提示信息;但是提示信息中有时并未给出是被哪个进程所占用,如果能找出文件被哪个进程占用,然后杀死相应的进程,文件就能被删除。写一个程序,如下所示:#include “stdafx.h”#include <Windows.h>#include int main(){char szFilePat..._pubg后台进程是那个
分类: 其他 发布时间: 08-03 23:30 阅读次数: 0

grep的时候,出现Is a directory

转载:https://blog.csdn.net/yishuige/article/details/51505207默认情况下,’grep’只搜索当前目录。如果 此目录下有许多子目录,’grep’会以如下形式列出:grep: sound: Is a directory这可能会使’grep’ 的输出难于阅读。这里有两种解决的办法:明确要求搜索子目录:grep -r或忽略子目录:grep -..._用cat + grep 查询提示grep: /home/zhihuan/skillcad: is a directory
分类: 其他 发布时间: 08-03 23:29 阅读次数: 0

QWidget::find注意事项

QWidget::find的作用是根据窗口id获取QWidget指针,然后根据QWidget进行相应的操作,很方便;不过QWidget::find能否跨进程呢,比如父进程启动子进程,子进程将主窗口的wid传递给父进程,方便父进程嵌入子窗口;父进程收到子进程窗口的wid后,QWidget *childWidget = QWidget::find(wid),可以看出childWidget为空,我们跟踪下QWidget::find的源码,如下所示:QWidget *QWidget::find(WId id){_qwidget::find
分类: 其他 发布时间: 08-03 23:29 阅读次数: 0

windows进程在后台运行

在cmd中,用start /b 程序即可如下所示:_window 进程运行在后台
分类: 其他 发布时间: 08-03 23:29 阅读次数: 0

windows命名管道编程注意事项

1.创建命名管道HANDLE WINAPI CreateNamedPipe(__in LPCTSTR lpName,__in DWORD dwOpenMode,__in DWORD dwPipeMode,__in DWORD nMaxInstances,__in DWORD nOutBufferSize,__in DWORD nInBufferSize,__in DW_windows命名管道连接不上
分类: 其他 发布时间: 08-03 23:29 阅读次数: 0

进程环境变量

1.获取进程环境变量#include stdafx.h#include <Windows.h>int main(){ LPTSTR lpszVariable; LPTCH lpvEnv; lpvEnv = GetEnvironmentStrings(); if (lpvEnv == NULL) { return -1; } lpszVariable = (LPTSTR)lpvEnv; while (*lpszVariable) { printf(lpsz_进程的path变量
分类: 其他 发布时间: 08-03 23:28 阅读次数: 0

windows下一个用户下的所有进程一定都是在一个session里面吗

windows下一个用户登录进去,会产生一个会话,术语为session,可以用工具Process Explorer,查看进程的session id,如下所示,我们查看chrome进程的session id。可以看出Session id是4.任务管理器中查看chrome的用户名是当前登录的用户名。由于用户登录产生会话,故一直以为用户下所有进程必然是同一个session id,直到解决一个服务程序需要创建具有管理员权限的界面程序时,发现一个神奇的现象,任务管理器中的winlogon.exe进程的用户是SY_一个session可以有多个process;但一个process只能属于一个session
分类: 其他 发布时间: 08-03 23:28 阅读次数: 0

代码层面剖析交互式服务检测由来

最近在做一个win10下如何使得服务程序启动一个界面程序,并且该界面程序具有管理员权限。其中用到API是CreateProcessAsUser,此api在调用的时候,加入了桌面,如下所示:si.lpDesktop = “winsta0\\default”;服务进程所处的session id是0,我所创建的界面进程复制了服务进程的token,导致创建出的界面进程所处的session是0,此时操作系统任务栏就会有齿轮形状的图标闪现,如下图所示:点击此图标,如下图所示如果继续点击这个界面上的查看消息,_windows 交互式服务检测 session0
分类: 其他 发布时间: 08-03 23:28 阅读次数: 0

webcompiler编译less文件报错排查

这几天在搞qt界面的多皮肤,基本方式是弄一套公共的less文件,然后编译成qss文件,公司用的是webcompiler工具,执行的时候,出现报错,如下图所示:其中compilerconfig.json的内容如下:[ { outputFile: ./qss/framework/app_browser.qss, inputFile: ./less/framework/app_browser.less }, { outputFile: ./qss/f_web compiler 无法编译less
分类: 其他 发布时间: 08-03 23:28 阅读次数: 0

webcompiler编译less成qss后,样式加载不出来的问题

今天在做qt的多皮肤开发时,webcompiler编译less成qss后,再用rcc工具编译成rcc文件时,部分样式未加载出来,效果如下:如上图所示,红色方框的部分其实是个关闭按钮,但是未能展示出来,正常情况是下面这个样子,经过长时间的排查,在notepad++打开对应的qss,在格式菜单中,可以看出,显示的是UTF-8编码格式,如下图所示将格式改成以UTF-8无BOM格式编码,然后用rcc重新编译就ok了。下面说下UTF无BOM和有BOM的区别,下面是以有BOM的格式打开的(即UTF-8格式_webcompiler less文件生成qss文件是编码格式
分类: 其他 发布时间: 08-03 23:27 阅读次数: 0

c++代码获取当前用户的sid

转发:https://blog.csdn.net/thanklife/article/details/78249562首先介绍下,命令行参数中可以获取到用户的sid,如下图所示:下面是代码中如何获取:// GetUserSid.cpp : 定义控制台应用程序的入口点。//#include stdafx.h#include <stdlib.h>#include <Windows.h>#define MAX_NAME 260/*int main(){_c++ sid
分类: 其他 发布时间: 08-03 23:27 阅读次数: 0

windows服务程序创建具有管理员权限的界面程序,并且界面进程属于当前登录用户

因为工作需要,windows服务进程需要能够创建出带界面的进程,并且此界面进程需要管理员权限,之前找到两种方法解决这个问题。1.服务进程里面复用winlogon.exe的令牌,并且加入窗口站,用CreateProcessAsUser创建winlogon.exe是个很神奇的进程,一方面其session id不为0(服务用户所在session id为0),并且跟登录用 户属于同一个session。这样利用其进程token,并且加入窗口站,就能创建出具有管理员权限的界面程序,但是由于winlogon._windows 服务程序以administrator权限调用应用程序
分类: 其他 发布时间: 08-03 23:27 阅读次数: 0

进程权限的相关概念

转发:https://blog.csdn.net/lixiangminghate/article/details/79642248
分类: 其他 发布时间: 08-03 23:27 阅读次数: 0

Image::FromStream(pStream) 返回0

转发地址:https://blog.csdn.net/q472599451/article/details/8675396今天在做GDI,PNG的透明按钮时遇到一个问题,pImage=Gdiplus::Image::FromStream(pStream);总是返回0;原来是没有初始化GDIGdiplus::GdiplusStartupInput gdiplusStartupInput;ULONG_PTR gdiplusToken;//初始化GDI+.GdiplusStart_mfc image::fromstream
分类: 其他 发布时间: 08-03 23:26 阅读次数: 0

用内存查看工具vmmap来理解HINSTANCE和HMODULE的具体含义

做win32开发以来,HINSTANCE和HMODULE用到的地方很多,一般而言,HINSTANCE指的是跟exe相关的,HMODULE跟dll相关。比如win32界面程序,int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine,_vmmap 能分析模块吗
分类: 其他 发布时间: 08-03 23:26 阅读次数: 0