- 博客(110)
- 资源 (23)
- 收藏
- 关注
原创 GNOME的桌面是哪个进程
Linux比较有趣的是一切都可以探索。既然Linux的GUI都是用户层下的程序,那桌面就应该对应到某个进程。利用工具wmctrl来显示当前有哪些窗口,系统用的是Ubuntu18.04。wmctrl需要先安装,安装命令sudo apt-get install wmctrl安装后,输入命令wmctrl –p –l结果如下:可见当前有两个窗口,一个窗口是Desktop,另一个是当前的终端窗口,并且显示了这两个窗口对应的进程pid。再利用ps命令查找该pid对应的进程,如下...
2021-12-01 11:31:27 553
原创 QT 设置Executable路径
默认情况下,Executable即exe路径一般与编译产生的目标文件在同一个目录下,比如下图:但这个路径也可以自行修改,在工程文件pro中添加如下:DESTDIR = $$PWD/bin即将生成的exe文件放在工程路径的bin文件夹中,再执行qmake,可见Executable路径已变成如下:要恢复原默认路径,在pro文件中删除“DESTDIR = $$PWD/bin”,再执行qmake即可。...
2021-10-15 15:11:12 4696
原创 C# “配置系统未能初始化”
运行程序时,出现这个问题。问题应该是出在App.config文件上。我曾手动打开这个文件修改了一些内容,但修改后,没发现XML内容及格式有错。或许是用第三方的编辑软件在修改及保存App.config内容时,加了一些不可见的字符。后来导入备份的App.config文件,在VS中进行修改,错误消失。因此建议修改App.config内容,最好是在VS中进行修改。...
2021-10-15 10:53:05 1832 1
原创 Ubuntu切换到命令行无法登录
我用的Ubuntu版本是20.04,是直接安装在电脑上,不是安装在虚拟机中。使用【Ctrl + Alt + F3】切换到命令行时,却登入不进去。用户名和密码都是对的,用的登录GUI同样的
2021-06-14 13:08:54 1039
原创 主程序与python的双向交互
如果需要用脚本来扩展一个程序的功能,或是定制差异化的客制功能,或是用脚本自动运行一系列需要手动执行的操作,可以考虑用python脚本来实现。当然也可以用lua脚本来实现,不过python库更丰富,可扩展空间更大。 要达成上述功能,就需要主程序与python能够实现双向交互,即主程序可以调用python脚本并取得结果,python脚本也可以调用主程序的功能。 已知主程序是可以单向调用python解释器来执行脚本的,也已知python可以通过ctypes库来...
2020-09-21 17:15:00 574
原创 QT工程同时包含多个项目
如何让一个pro工程同时包含几个pro子工程,这样打开一个pro文件时,可同时打开多个子工程。可新建一个pro文件,在其中设置 TEMPLATE和SUBDIRS ,就可以了,如下:TEMPLATE = subdirsSUBDIRS += untitled1 untitled2其中的untitled1和untitled2是子工程的目录,该目录与主工程pro文件位于同级目录,整个工程打开后的层次如下图:...
2020-09-17 10:36:05 4114
原创 QT如何编写和使用自定义控件
如果希望自己编写的QT自定义控件被重用,在Windows系统下,可以将控件封装成dll,之后只提供控件的头文件,lib和dlll供使用者调用即可。 开发准备 需要安装QT和VS,我使用的版本:QT 5.14.1 + VS 2017 Community 注意使用此搭配的原因是因为QT 5.14.1安装包中的Qt Creator 4.11.0 (Community)是用VS2017 32 bit编译的,可通过Qt Creator的AboutQt Crea...
2020-09-16 11:30:10 9326 4
原创 如何查看Dll中包含了哪些函数
如何查看Dlll包含了哪些函数,有两种方法:1. 用工具depends来查看该工具可从http://www.dependencywalker.com/下载,打开该软件,再通过该软件打开需要查看的Dll,比如打开C运行时库,C:\Windows\System32\msvcrt.dll,呈现如下:在窗中右侧中部,看到了我们熟悉的打开文件的C语言标准库函数fopen.2.利用dumpb...
2020-04-05 13:20:49 32807 3
原创 浅析Visual Studio中VC++单元测试原理
接上一篇文章,VS2015中对MFC工程进行单元测试,当我们新建一个VC++的测试工程后,查看生成的代码,会发现代码是这样的:#include "stdafx.h"#include "CppUnitTest.h"using namespace Microsoft::VisualStudio::CppUnitTestFramework;namespace UnitTest1{ ...
2020-03-20 16:07:28 416
原创 VS2015中对MFC工程进行单元测试
如何在VS2015中进行单元测试,直接说步骤。新建一个MFC工程在我们的实际需求中,我这里接近实际的需求,建的是一个MFC工程,
2020-03-20 15:20:01 767
转载 C# 如何实现接口事件
接口可声明事件。下面的示例演示如何在类中实现接口事件。 实现接口事件的规则与实现任何接口方法或属性的规则基本相同。在类中实现接口事件在类中声明事件,然后在适当的区域调用该事件。namespace ImplementInterfaceEvents{ public interface IDrawingObject { event EventHandle...
2019-02-20 16:31:48 2587
原创 VC 用一个函数处理所有菜单消息
当有多个菜单项,且菜单点击事件的执行代码都很短时,我就用一个函数来响应所有点击消息,不用为菜单逐个添加消息映射,代码显得简短而整洁。 当然,你可以用ON_COMMAND_RANGE方式,但这种方式的用起来很不便,因为菜单项ID必须要在一个范围内才便于处理,而这个ID是VS自动赋于的,手动改也麻烦,所以本文采用重载OnCommand函数的方法。 做法如下: 1.重载函数 B...
2019-02-01 17:16:55 501
原创 VC 如何用代码实现消息映射
QT,C#可在代码中关联事件和事件函数,且关联可取,极其方便。反观VC,只能用宏关联,且需程序一开始就关联消息和消息函数,运行中不可取消关联。MFC如此包装很不优雅。在用代码创建控件和菜单,或想用一个消息函数处理多个消息时,我更愿意在代码中作消息映射。VC虽已老朽,但仍有不少公司在用,且还有旧VC项目需维护,因此有必要在此分享“如何用代码实现消息映射”。 MFC的消息...
2019-01-29 17:56:09 743
原创 QT知识
1. 编译时出现multiple definition of ....... 提示某个类或类的函数定义重复了,可检查下.pro文件,看某个类的文件是否在SOURCES +=或HEADERS +=中被重复添加了2.关于QAbstractItemModel 不管数据在底层以何种数据结构存储,所有QAbstractItemModel的子类都将以表格的层次结构来呈现这些数据。视图使用这个约定...
2018-10-19 16:15:56 153
原创 QT以自定义结构或类作为信号和槽的参数
在QT中如何用自定义结构作为信号和槽的参数,在网上查了一通,用人说要用qRegisterMetaType注册结构,还有说要为结构使用宏Q_DECLARE_METATYPE。不知道是不是他们的版本太旧。经本人验证,既无需注册,也无需使用宏,就可使用结构或类作为信号和槽的参数。我使用的版本为Qt Creator 4.7.0, 编译构件是Qt 5.11.1 MinGW 32 bit1...
2018-09-28 11:39:46 1180 2
原创 编写可维护软件的10大要则
最近看了一本书叫《代码不朽》,书中列出了编写可维护软件的10大要则。该书译自老外的著作,看来国外的研究者对如何提高软件的质量已有一些理论化的指导,并且有一些量化的指标。对于书中个别观点见仁见智,不过对于我们如何规范自己的编码还是有很大的启发作用。现将10大要则作如下笔记:1.编写短小的代码单元代码单元的长度应该限制在15行代码内, 或者将长的单元分解成多个更短的单元,短小的代码易于理解、测试及重用...
2018-03-24 13:36:51 443
原创 设计模式概要
写程序久了,单个项目代码量大了,就会思考如何用好的方式来组织自己的代码,使代码有更好的结构性。最近读了一本刘伟老师编写的《设计模式的艺术,软件开发人员内功修炼之道》,此书结合实例进行讲解,易于理解,受益匪浅。现将书中所列24种设计模式归纳如下:1.单例模式(Singleton Pattern)一个类只有一个实例,该类自行实例化,并向整个系统提供这个实例的可全局访问的方法2.简单工厂模式(Simpl...
2018-03-06 10:01:01 233
原创 VRRP Cehcksum的计算范围
关于VRRP的帧格式的描述可见我上篇文章http://blog.csdn.net/zztoll/article/details/79228731这里说下Checksum的计算。VRRPv2 的checksum的计算范围从Version到Authentication DataVRRPv2 的checksum的计算范围从Version到最后一个IPvX Address,并同时包括伪IP
2018-02-01 15:18:05 248
原创 VRRP帧格式
最近在写一个生成各种网络封包的功能模块,其中写到VRRP时,网上搜到的关于VRRP帧格式的描述,好多都是错的,最后在清默网络http://www.023wg.com/kkxpz/78.html搜到的才是正确的。 当然你也可以直接参考RFC文档 VRRPv2 参见RFC3768,https://tools.ietf.org/html/rfc3768 V
2018-02-01 15:04:08 1651
原创 Ethernet Type,IP Head Protocol Number
终于找到Ethernet Type的来源,原来这玩艺可以到IEEE去付费申请,申请地址:http://standards.ieee.org/develop/regauth/ethertype/index.html当前最新的Ethernet Type有哪些,还可以在IEEE上下载,下载地址:https://standards.ieee.org/develop/regauth/ethertyp
2017-07-18 17:59:53 918
转载 【转】将QT开发的界面程序封装成DLL,在VC中成功调用
最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多帮助,将心得写在这里供大家参考。 PS:本文中谈的是用QT封装一个包含界面的DLL,然后在其他任何地方使用任何语言来调用这个DLL,不是那种在qt creator里面建一个dll工程,然后
2017-05-31 14:53:53 1721 1
原创 关于tshark的configuration profile
1.默认配置安装wireshark之后,其配置文件默认放在%AppData%\Roaming\Wireshark\preferences当未对tshark指定configuration profile时,会自动导入此路径下的配置如此路径下没有preferences,则会使用tshark的默认配置2.指定配置也可以使用参数 -C来指定配置文件,但-C后面跟配置名称时,
2017-04-21 15:19:37 990 2
转载 C#中怎么判断一个数组中是否存在某个数组值
int[] ia = {1,2,3};int id = Array.IndexOf(ia,1); // 这里的1就是你要查找的值if(id==-1)// 不存在else// 存在
2017-03-22 16:24:57 1929
转载 在C#中使用Spire.doc对word的操作总结
在最近的工程中我们要处理一些word文档。通过在网上的大量搜索,我发现大多数软件功能不是不完整就是有重复。极少数可以完全实现的word组件又要收费。功夫不负有心人,终于找到了可以满足我们需要的免费的C# word程序库。为了和其他的作比较,我在这里先做以下汇总。希望对大家有帮助。如何得到? 这个免费版的word组件可以在Codeplex下载到,你也可以从本文里直接下载msi文件
2017-03-14 16:07:49 16644 1
转载 Spire.Doc组件读取与写入Word
Spire.Doc组件读取与写入Word原文地址:http://www.cnblogs.com/yanweidie/archive/2015/10/19/4888199.html 之前写了一篇开源组件DocX读写word的文章,当时时间比较匆忙选了这个组件,使用过程中还是有些不便,不能提前定义好模版,插入Form表单域进行替换。最近无意中发现Spire.Doc组件功能很强大,目前
2017-03-14 11:09:09 9810 2
原创 tshark命令示例
1.从.pcap文件中提取如wireshark表格中显示的封包摘要信息tshark -r test.pcap > text.txt2.从.pcap文件中提取如wireshark表格中显示的封包摘要信息,指定显示某列tshark -r test.pcap -T fields -e col.Protocol -e col.Info -E separator=, -E header=y
2017-02-08 15:28:23 7397
转载 Wireshark命令行工具tshark使用小记
原文地址:http://www.cnblogs.com/liun1994/p/6142505.htmlWireshark命令行工具tshark使用小记1、目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析;但我的需求是,怎么样把Data部分导出来,因为后续的工作主要针对数据包的Dat
2017-02-08 12:16:15 3522 1
原创 InstallShield 2015 Premier的Basic MSI Project如何在卸载时删除残留的文件
先说下缘由,我在用InstallShield 2015 Premier新建工程时选的Basic MSI Project,且程序在运行中会在安装目录下生成数个文件但卸载程序时,因为安装目录下有新生成的文件,因此安装目录及其中的新生成文件会残留,而导致卸载不完全当然如果你新建工程时是选用的InstallScript MSI Project,可参见此文做法http://www.hiadmin.org
2017-01-04 14:50:51 3097 4
转载 MAC,PHY相关知识
网口扫盲三:以太网芯片MAC和PHY的关系问:如何实现单片以太网微控制器?答:诀窍是将微控制器、以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件.这种方案可使MAC和PHY实现很好的匹配,同时还可减小引脚数、缩小芯片面积.单片以太网微控制器还降低了功耗,特别是在采用掉电模式的情况下.问:以太网MAC是什么?答:MAC即Media Ac
2016-12-23 14:00:33 533
转载 OCX控件的注册卸载,以及判断是否注册
方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册示例:regsvr32 netshare.ocx //注册netshare.ocx控件regsvr32 /u netshare.ocx //解除netshare.ocx控件的注册如果netshare.ocx文件不在system目录时,还必须在文件名前加上完整的路径。除了reg
2016-11-22 12:43:21 13396
原创 ISDEV : fatal error -6109: Internal build error
使用InstallShield 2015 Premier和InstallShield2015 Limited EditionBuild来创建C#程序的安装程序时,会出现,"ISDEV : fatal error -6109: Internal build error"提示。但新建一个工程随便拖几个文件放进工程,却没有提示后来把有error -1069提示的文件全部删除,提示消失经查找,...
2016-09-26 17:20:51 4252
原创 让InstallShield 2015 Limited Edition for Visual Studio 2015在原工程基础上生成一个全新的安装程序
让InstallShield 2015 Limited Edition for Visual Studio 2015在原工程基础上生成一个全新的安装程序 标题有点长,什么意思呢,先说下需求。 通常情况下,我们发行新版程序时,一般要把旧版卸截掉,不然是不能全新安装的 但有时,我们需要新旧版并存,这时就需要制作一个全新安装程序了 如
2016-08-08 11:57:37 2857
原创 让InstallShield 2015 Limited Edition for Visual Studio 2015生成的setup.exe以管理员权限运行
让InstallShield 2015 Limited Edition for Visual Studio 2015生成的setup.exe双击时以管理员权限运行
2016-08-03 15:54:32 5012 1
转载 让.net程序自动运行在管理员权限下
如何让.net程序自动运行在管理员权限下 VS2010 c# 编译的WINFORM程序 在Win7 以管理员身份运行 windows 7和vista提高的系统的安全性,同时需要明确指定“以管理员身份运行”才可赋予被运行软件比较高级的权限,比如访问注册表等。否则,当以普通身份运行的程序需要访问较高级的系统资源时,将会抛出异常。 如何让程序在启动时,自动要求“管理员”权限了,
2016-08-02 16:32:18 1535
VC程序与Python双向交互例程
2020-09-21
QT下如何用hidapi操作hid设备
2019-11-21
把UltraEdit添加到右键菜单
2018-03-05
lwip-win32
2014-04-17
自定义CFileDialog对话框,在CFileDialog上加控件
2013-06-24
模态对话框显示后台线程的进度
2013-06-05
packager.rar
2011-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人