
Windws编程
法哥2012
QQ:2533740151
展开
-
用VCbuild(MSBuild)在命令行编译Visual Studio工程
在Visual Studio 项目自动打包发布版本的需求场景中,需要直接在命令行下编译,在网上找了一个解决方案,做个记录。cmd命令行格式如下,msbuild xxxx.sln /t:build (/t为/target 缩写)自测可以顺利编译通过VS2017开发的 VC++ 和C# 项目。实际使用时可能还需要添加环境变量,方便直接在cmd下运行。...原创 2020-11-04 19:20:02 · 1868 阅读 · 0 评论 -
C++ 程序崩溃定位分析解决方案
需求背景用Visual Studio 2017开发的MFC程序发布后,客户在使用时出现了挂机的情况,受限于使用场景和复现条件等因素,分析解决这类概率性的问题遇到了一些困难。解决方案利用PDB和dump文件定位问题并进行调试。 关于pdb文件 什么是pdb文件,pdb文件是“程序数据库”Program Data Base的简称,包含了程序的代码信息。通过这个文件,可以查看对应断点的位置,堆栈信息等内容;使用pdb使得我们无需代码也可以掌握程序的堆栈运行状态;Pdb文件是链接器原创 2020-08-01 14:35:47 · 2969 阅读 · 0 评论 -
IntelliLock工具
为软件产品创建试用版1、设置过期日期2、限制安装后的试用天数3、限制试用次数4、限制每次运行时间5、限制总运行时间6、自定义锁定 - 允许用户自定义试用限制 使用授权许可文件,轻松将试用版转变为完整版6.1、通过硬件 ID 将许可文件锁定到指定计算机6.2、锁定许可文件到指定属性(如公司名称、程序版本等)6.3、嵌入式许可文件。许可文件可以存储为程序的内嵌资源6.4、添加自定义数据到许可文件(如灵活的授权形式,模式授权等)6.5、限制许可文件的使用以限制试用期限,原创 2020-07-15 17:02:09 · 875 阅读 · 0 评论 -
查看Windows系统安装和卸载驱动的日志信息
最近在用InstallShield2010开发一个一键打包驱动的项目,需要支持安装和卸载。调试时需要知道驱动安装和卸载功能是否正确执行,可以系统盘的Windows的inf目录中查看这两个文件的信息setupapi.dev.log 文件(安装)安装驱动:C:\\Windows\\inf\\setupapi.dev.log 文件[Device Install Log] OS Versi...原创 2018-10-22 17:24:30 · 4894 阅读 · 2 评论 -
GDI对象泄漏的问题
项目中遇到的一个问题:GUI程序长时间运行时(大于27小时),会出现点击托盘图标无反应,不能正常显示界面调查分析:调试代码,待问题复现后(超过一段时间)几乎必现。在工程的输出信息栏中会周期性的提示 如下信息,XXX.exe 中的 0x750b845d 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012e004 处的 CResourceException。Warni...原创 2018-09-25 14:06:55 · 2990 阅读 · 0 评论 -
Visual Studio2010 “安装项目” Step By Step
转自博客园MeteorSeed的博客 http://www.cnblogs.com/MeteorSeed/p/2684538.html感谢原作者分享目录一 基本操作二 定制安装对话框三 安装程序类四 总结 .NET程序集因为包含了元数据,所以程序集具有自描述性。多数程序自身包含了运行所需要的全部信息,这类程序集就是我们常说的“绿色软件”。对于绿色软件,使用压缩工具制...转载 2018-08-03 09:15:28 · 661 阅读 · 0 评论 -
VS2010制作的安装部署文件,快捷方式属性中无“以管理员权限运行”功能
现象最近在使用Visual Studio 打包安装程序的时候,安装后发现安装到桌面和开始菜单上的快捷方式的”以管理员权限运行“功能选项不可用,如图1所示,图1 无管理员权限选项和无法打开文件位置现象其实,这个问题与“打开文件位置”,“更改图标”等功能按钮不可用是相同的问题。原因查了相关资料才知道,原来Visual Studio在制作安装程序上有一些问题。微软官方说明如下,You can creat...原创 2018-07-05 16:18:57 · 2484 阅读 · 0 评论 -
iso格式的镜像文件安装
背景: 验证Windows系统的兼容性,需要安装目标PC上的系统复现问题,这个就涉及到系统安装的问题。通常情况下用老毛桃或大白菜等安装系统的软件一键安装(.GOHO文件)系统即可。这种情况比较简单,不做讨论。介绍一下另外一种情况,如果提供的不是一键安装的GOHO文件,如iso文件,这种情况处理起来可能稍微有些不一样。ISO镜像文件安装方法:1.下载虚拟光驱软件,安装完成后打开这个虚拟光驱软件。先新...原创 2018-06-15 10:36:14 · 2339 阅读 · 0 评论 -
dos命令切换目录小结
在编程过程中,经常需要用用到利用dos执行带命令行的参数或执行脚本,这时需要经常性的切换目录,在此做个小结,方便日后查看。1. 打开cmd.exe2.进入c盘,应输入命令:cd c:\ 3.进入c盘根目录中的某个文件夹目录,继续输入:cd Python27 4.如果此时需要切换目录到c盘,输入:cd c:\ 5.如果此时需要一次性进入多级目录,则输入:cd C:\Python27\Lib\xlrd...原创 2018-04-11 15:05:46 · 6985 阅读 · 0 评论 -
Windows识别USB设备过程
集线器检测新设备主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察。(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5kΩ的上拉电阻。当用USB线将PC和设备接通后,设备的上拉电阻使信号线的电位升高,因此会被主机集线器检测到)主机知道了新设备连接后每个集线器用中断传输来报告在集线器上的事件。当主机知道了这个事件,它给集线器发送一个Get_...转载 2018-09-26 17:15:34 · 6942 阅读 · 0 评论 -
VCMFC根据USB设备PID、VID自动查找串口号
在VC/MFC环境下有两种方法来根据PID、VID获取对应的串口号,这样操作的目的是避免客户手动设定下拉框的信息,让软件自动识别!当然,前提是有自己的USB PID、VID下面是C++代码示例:// 第一种方法需要包含此头文件#include <SetupAPI.h>#pragma comment(lib, "Setupapi.lib") #define MY_USB...转载 2018-09-29 09:13:00 · 2415 阅读 · 0 评论 -
安捷伦电源6319D实现GPIB通信
设备:PC+安捷伦电源(型号:6319D)+GPIB开发环境:VS2010+MFC+VISA定义电源信息如下,typedef struct PowerUnitTag{ BOOL bOpenEnable; ViSession instrumentHandle; int nGPIBAddress; int nPowerAddress; int nPowerModel; in...原创 2019-05-31 08:58:31 · 3597 阅读 · 0 评论 -
通过libcurl实现https访问服务器
libcurl支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。本文通过一个示例Demo介绍通过libcurl实现https访问服...原创 2019-08-26 09:22:40 · 8433 阅读 · 1 评论 -
dell3900机型安装xp64位操作系统
本文提供了一种在Dell3900机型上的PC安装XP64位操作系统的方法。原创 2016-08-13 23:29:12 · 1976 阅读 · 0 评论 -
Windows操作系统产品名与内部版本号的对应
Windows 系统版本号小结。转载 2016-08-01 19:25:38 · 2841 阅读 · 0 评论 -
用脚本实现windows与linux之间文件的传输
用脚本实现windows与linux之间文件的传输需求1.在Windows系统上的某个文件需要传送到Linux系统的设备上;2.因为自动化的要求不能人工操作,需要编写脚本,然后在程序中调用cmd命令执行这个脚本。下面总结一下这个需求的实现步骤。实现安装WinSCP工具因为执行脚本需要用到WinSCP.exe。这个工具获取地址:http://download.csdn.n...原创 2016-07-20 12:17:13 · 22348 阅读 · 3 评论 -
Windows 程序结构
与控制台程序相比,虽然编制一个Windows应用程序所需的代码要多得多,但是Windows应用程序所具有的强大功能和易操作的特性是控制台程序所不能比拟的。和其他应用程序一样,基于Windows的C++应用程序也有自己的结构,称为Win32应用程序结构。一个简单的Windows程序主要包括应用程序主函数WinMain函数和消息处理函数,WinMain函数的主要工作是定义窗口、注册窗口、显示窗口、消息原创 2014-06-20 23:35:05 · 1177 阅读 · 0 评论 -
虚拟机
虚拟机虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。1概述通过虚拟机软件,你可以在一台物理计算机上模拟出另一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访问网络资源等等。对于你而言,它只是运行在你物理计算机上的一个应用程序,但是对于在虚拟机中运行的应用原创 2014-06-10 23:21:14 · 779 阅读 · 0 评论 -
进程通信——命名管道
一、命名管道概述命名管道是通过网络来完成进程之间的通信的,命名管道依赖于底层网络接口,其中包括有 DNS 服务,TCP/IP 协议等等机制,但是其屏蔽了底层的网络协议细节。对于匿名管道而言,其只能实现在父进程和子进程之间进行通信,而对于命名管道而言,其不仅可以在本地机器上实现两个进程之间的通信,还可以跨越网络实现两个进程之间的通信。命名管道使用了 Windows 安全机制,因而命名管道的服原创 2014-06-11 01:08:42 · 1754 阅读 · 0 评论 -
线程
线程一、简介1.定义线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以原创 2014-06-07 23:32:24 · 831 阅读 · 0 评论 -
进程
进程一、简介1.定义狭义:进程就是一段程序的执行过程。广义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data regi原创 2014-06-06 23:22:43 · 949 阅读 · 0 评论 -
进程通信 - 匿名管道
引子前面的两篇博文分别介绍了通过剪贴板和通过邮槽来实现进程之间的通信,其中剪贴板呢,是用来实现本地两个进程之间的通信,而邮槽则既可以实现本地两个进程之间的通信,也可以实现本地进程和服务器进程的通信,当然,上面这两种方式都是有局限性的,比如剪贴板就只能实现本地进程之间的通信,而在邮槽中,虽然是既可以实现本地进程之间的通信,又能实现本地进程和远程服务器进程的通信,但是使用邮槽的原创 2014-06-11 23:43:53 · 802 阅读 · 0 评论 -
进程通信——剪贴板
进程通信——剪贴板一、简介1.1 定义剪贴板是由操作系统维护的一块内存区域,这块内存区域不属于任何单独的进程,但是每一个进程又都可以访问这块内存区域,而实质上当在一个进程中复制数据时,就是将数据放到该内存区域中,而当在另一个进程中粘贴数据时,则是从该块内存区域中取出数据。 Windows剪贴板是一种比较简单同时也是开销比较小的进程间通信方式。使用剪贴板传递数据使开发人员不必过多地考原创 2014-06-09 23:24:48 · 3384 阅读 · 0 评论 -
Windows编程特点
一个完整的Windows应用程序除了WinMain函数外,还包含用于处理用户动作和窗口消息的窗口函数。这不同于一个C++控制台应用程序,可以将整个程序包含在main函数中。当然,他们的区别还远不止这些。一个Windows应用程序还具有以下的特性。 事件驱动程序设计消息循环与输入图形输出用户界面对象资源共享动态链接库 1 事件驱动的程序原创 2014-06-24 23:20:35 · 4131 阅读 · 0 评论 -
利用GDI+实现BMP、JPEG、GIF图像格式的转换
在Visual C++6.0中,实现各种类型的类型的图像转换是比较复杂的,有时还需要用户了解图像的各种格式,以及图像的编码、解码算法。使用GDI+,用户则可以非常方便地实现图像类型的转换。下面就编写一个实例实现BMP、JPEG、GIF图像格式的相互转换。在VS中使用GDI+需注意的问题:1.下载GDI+包文件2.引用Gdiplus.h头文件3.引用Gdiplus命名空间(1)创原创 2014-04-02 23:27:24 · 1758 阅读 · 0 评论 -
Windows自带的文本编辑器引起的乱码问题
本文介绍了一种因为Windows系统差异导致txt文本文件出现乱码的问题及解决方案。原创 2016-07-05 18:49:09 · 3835 阅读 · 0 评论 -
获取Windows操作系统版本和位数
(1)获取系统位数32bit 64bitvoid CXXXDlg::GetSysBit(bool& bIs32Bit){ bIs32Bit=true; SYSTEM_INFO si; // Copy the hardware information to the SYSTEM_INFO structure. GetNativeSystemInfo(&si); // Displa原创 2016-08-04 22:46:24 · 5968 阅读 · 0 评论 -
cmd常用命令
winver 检查Windows版本 wmimgmt.msc 打开Windows管理体系结构(wmi) wupdmgr Windows更新程序 wscript Windows脚本宿主设置 write 写字板 winmsd 系统信息 wiaacmgr 扫描仪和照相机向导 winchat xp自带局域网聊天 mem.exe 显示内存使用情况 msconfig.exe转载 2015-12-02 08:41:20 · 701 阅读 · 0 评论 -
C++读写Excel文件
在处理仪表数据时需要对Excel文件进行读写操作,本文对C++操作Excel的方法做一个小结。环境:1. Visual Studio 20102. 安装office20073. Win7 1、添加OLE/COM支持。首先,应用程序必须添加对OLE/COM的支持,才能导入OLE/COM组件。本文使用的是MFC对话框程序,在创建工程的向导原创 2016-06-16 14:59:48 · 32013 阅读 · 0 评论 -
一个Windows 系统究竟有多复杂?
本文介绍了Microsoft Windows操作系统相关的知识。转载 2016-07-13 18:38:34 · 6527 阅读 · 0 评论 -
RGB颜色对照表
近期编程时遇到了颜色的问题,收集了一些RGB颜色,供大家学习参考。浅粉红 #FFB6C1 255,182,193粉红 #FFC0CB 255,192,203猩红/深红 #DC143C 220,20,60淡紫红 #FFF0F5 255,240,245弱紫罗兰红 #DB7093 219,112,147热情的粉红 #FF69B4 255,105,180深粉红 #FF1原创 2014-02-24 22:50:55 · 8231 阅读 · 0 评论 -
一种获取图片RGB参数值的简单方法
在编程的时候碰到了一个需要获取背景图片的颜色的参数值的问题。这里介绍一种简单的方法供解决类似问题的朋友们参考!打开Windows自带的画图软件就可以了。操作如下:(1)程序——附件——画图,界面如下:(2)将需要取色的图片贴上去(借助键盘中的PrintScreen键即可),如下图所示:(3)选中左边取色工具:如下示意图所示:(4)用取色工具选原创 2014-03-09 01:09:35 · 13988 阅读 · 0 评论 -
位图文件分析
位图是Windows系统中一种最简单也是最基本的图像格式,了解位图的文件结构有助于对位图进行各种操作。关于位图的存储和显示普通的显示器屏幕是由许许多多点构成的,我们称之为象素。显示时采用扫描的方法:电子枪每次从左到右扫描一行,为每个象素着色,然后从上到下这样扫描若干行,就扫过了一屏。为了防止闪烁,每秒要重复上述过程若干次。例如我们常说的屏幕分辨率为1024*768,刷新频率为80Hz,意思原创 2014-04-01 00:21:27 · 1873 阅读 · 0 评论 -
SecureCRT无法启动
终端工具突然打不开了,双击SecureCRT.exe 程序直接挂掉了,提示:SecureCRT 遇到一个致命的错误且必须关闭。 一个崩溃转储文件已创建于: C:\Documents and Settings\Administrator\Application Data\SecureCRT.dmp 请提交一个 bug 报告给 VanDyke Software, Inc. 的技术支持, 使原创 2016-05-17 18:34:23 · 25774 阅读 · 0 评论 -
C++删除某个特定的进程
总结一个删除某个进程的函数,实现类似于在任务管理器中关闭某个进程的功能。 引用头文件:#include BOOL KillProcessFromName(CString strProcessName){ //创建进程快照(TH32CS_SNAPPROCESS表示创建所有进程的快照) HANDLE hSnapShot = CreateToolhelp32Snapsh原创 2016-06-16 16:26:05 · 2200 阅读 · 1 评论 -
Windows基本数据类型
一,常见数据类型 二,Windows数据类型命名规律 基本数据类型包括:BYTE、CHAR、WORD、SHORT、INT等。 指针类型的命令方式一般是在其指向的数据类型前加“LP”或“P”,比如指向DWORD的指针类型为“LPDWORD”和“PDWORD” 各种句柄类型的命名方式一般都是在对象名前加“H”,比如位图(BITMAP)对应的句柄类型为“HBIT原创 2014-06-23 23:02:55 · 962 阅读 · 0 评论