首页
学习
活动
专区
圈层
工具
发布

WINDOWS核心编程--Windows程序内部运行机制

第三个参数 lpCmdLine 是一个以空终止的字符串,指定传递给应用程序的命令行参数。...例如:在 D 盘下有一个 sunxin.txt 文件,当我们用鼠标双击这个文件时将启动记事本程序( notepad.exe ),此时系统会将 D:/sunxin.txt 作为命令行参数传递给记事本程序的...“\” 用于连接通常有两个方面: ①:在典型情况下用于转义连续多行的宏定义。...HID_ 命令Help上下文 HID_TOOLS_SPELLING 0x18000~0x1DFFF IDP_ 消息框提示 IDP_INVALID_PARTNO 8~0xDEEF HIDP_ 消息框...静态连接库 UAFXCW.LIB 发行版本:具有Unicode支持的MFC静态连接库 动态连接库命名规范: 名称&类型 _AFXDLL 唯一的动态连接库(DLL)版本 WINAPI Windows

2.3K50

ATL CLR MFC Win32 常规 的区别

---- 文章1 ATL用于编写COM程序,CLR是.NET的公共语言运行库,MFC是指MFC类库,MFC程序是用这些类库做出的程序,WIN32常规就是不用 MFC,使用API函数编的程序。...从编程所处层次而言,WIN32为最底层,其次是MFC.然后是CLR. WIN32 winAPI MFC MFC类库 CLR .net库. WIN32常规就是不用MFC,使用API函数编的程序。...所以C++/CLI目前还是微软的一家之言。 ATL用于编写COM程序。ATL库貌似也年纪很大了,至少在我接触到VC的时候就有它的存在了。...MFC是微软的基本类库,用于使用Visual C++开发环境创建本地应用程序。顾名思义,CLR具有跨平台、跨语言的特性,各种语言都可以使用CLR开发.NET平台上应用程序。...3)为了使用CLR类库中的Console类,在程序的开始包含如下两行: #using using namespace System; //下列代码演示了如何使用CLR与MFC

2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Windows 反消息钩子(1)

    一、消息钩子的使用 消息钩子分为本地(local)和远程(remote)两种(两个local system-wide hook例外,无关主题,不多说了)。...,为确保此数值在所有实例中均保持不变,将其存放于此模块所有实例的共享数据区,若在exe程序中按此格式添加一int 变量 appNum,在程序启动时appNum++,则可以通过访问此变量的数值,确定有多少个...exe的实例,当然这种方法也可以替代同步对象用于只启动一个实例。...不要以为自己没有在程序中安装钩子,程序中就一定没有安装钩子,在MFC4版本中,MFC会自己装一个local类型的钩子,MFC7版本中好像没了。好了,下面介绍其实现。...SetWindowsHookEx函数的ASCII版本SetWindowsHookExA HHOOK WINAPI Hook_SetWindowsHookExA( int idHook

    78520

    BoundsChecker使用说明(代码调试)

    它通过驻留在 Visual C++ 开发环境内部的自动调试处理程序来加速应用程序的开发,缩短产品发布的时间。BoundsChecker 对于编程中的错误,大多数是C++中特有的提供了清晰的详细的分析。...非MFC程序也可以利用MS C-Runtime Library的Debug Function加入内存泄漏的检测功能。...当你确定要禁止该类型的报错后,BoundsCheckes之后将不再给出这类型的错误提示。 6.2设置 这样就可以忽略API的报错。...c、 选择你想要禁止或过滤的应用 2、 运行应用程序 a、 程序运行时,错误描述会出现在Program Error Detected对话框中 b、 被禁止的错误提示部分不会提示...为将来要运行的应用程序创建一个禁止方案 4、 你可以保存当前的设置,禁止和过过滤方案以备以后使用 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126317.html

    2.1K20

    Simple Windows Service in C++

    这是一篇使用C++展示如何创建简单的Windows服务的文章。...源代码下载地址为:https://www.codeproject.com/KB/system/499465/SampleService.zip  介绍 这篇文章展示如何使用C++创建一个基本的Windows...根据应用程序的体系结构,服务在许多开发方案中非常有用。  背景 我在C++中找到的Windows服务示例并不多。我使用MSDN编写这个非常基本的Windows服务。  ...安装服务 你可以通过在命令行提示符中运行一下命令来安装服务(注意要以管理员身份运行):     C:\>sc create "My Sample Service" binPath= C:\SampleService.exe...卸载服务 你可以从命令提示符通过运行以下命令卸载服务:     C:\>sc delete "My Sample Service" 历史 11/28/2012:文章和代码的初始版本。

    96710

    基于visual c++之windows核心编程代码分析(8)自动下载更新程序

    参考链接: C++ wcscat() 我们编写Windows程序,经常需要自动更新,该功能如何实现呢,我们来看代码实现与注释讲解 #include "stdafx.h" #include "AutoUpdate.h...DWORD WINAPI UpdateThreadProc(LPVOID lParam) {     /*     *如果有必要,可以使用GetTempPath() 函数获取系统临时文件目录,将用到的文件下载至该目录...WorkThreadProc(LPVOID lParam) {     MessageBox(NULL,L"工作线程已经启动。"...        _tprintf(_T("错误: MFC 初始化失败\n"));         nRetCode = 1;     }     else     {         //...wcsicmp(StartInfo,_T("/install")))         {             //AfxMessageBox(L"命令请求安装");             wchar_t

    75620

    消息钩子的反拦截

    消息钩子分为本地(local)和远程(remote)两种(两个local system-wide hook例外,无关主题,不多说了)。local类型的钩子函数只能拦截本进程的消息。...,为确保此数值在所有实例中均保持不变,将其存放于此模块所有实例的共享数据区,若在exe程序中按此格式添加一int 变量 appNum,在程序启动时appNum++,则可以通过访问此变量的数值,确定有多少个...exe的实例,当然这种方法也可以替代同步对象用于只启动一个实例。...不要以为自己没有在程序中安装钩子,程序中就一定没有安装钩子,在MFC4版本中,MFC会自己装一个local类型的钩子,MFC7版本中好像没了。好了,下面介绍其实现。...从上面的讨论我们可以得出一个最简单的防侵入方案:在加载hook dll之前hook相应api使得加载失败,不过有一个缺陷:系统并不会因为一次的失败而放弃,每次有消息产生欲call hook时系统都会试图在你的进程加载

    1K30

    QT编写DLL给外部程序调用,提供VCC#C调用示例(含事件)

    也发现有些用汇编和C封装的,那估计是高手才能编写啊!那怎么办呢?眼看一星期的交货期要到了,由于本人从来没有写过SDK开发包,心里那个着急啊,赶紧想出了三种处理方案。...方案一: 用自己最熟悉的QT来写,毕竟QT也是C++的一种嘛,应该可以和VC通用的。初步实验,你妹啊,调用不起来,直接废弃。 方案二: 找VC高手,自己掏钱出来找人写,客户是上帝,那可不能耽误呢!...老朋友啊,当年的编程入门,又记起了当年的大学,当年的图书馆,当年的初恋! 搞就搞,新建MFC DLL,我的妈呀,VC的命名规则实在让人抓狂!半自动语法提示更是让我有种自杀的冲动!...既然QT也是C++,而且有个大名鼎鼎的WPS都是QT和MFC混合编程的,所以肯定有方法的,百度谷歌,找到一个qtwinmigrate的东西,在这里万分感谢qtwinmigrate的作者!...第五步:编写C#程序测试  1 using System;  2 using System.Collections.Generic;  3 using System.Text;  4 using System.Runtime.InteropServices

    1.5K20

    Simple Windows Service in C++

    本文是来自CodeProject中的一篇名为Simple Windows Service in C++的译文,原文地址为:Simple Windows Service in C++,作者为:Mohit...这是一篇使用C++展示如何创建简单的Windows服务的文章。...根据应用程序的体系结构,服务在许多开发方案中非常有用。 背景 我在C++中找到的Windows服务示例并不多。我使用MSDN编写这个非常基本的Windows服务。...安装服务 你可以通过在命令行提示符中运行一下命令来安装服务(注意要以管理员身份运行): C:\>sc create "My Sample Service" binPath= C:\SampleService.exe...卸载服务 你可以从命令提示符通过运行以下命令卸载服务: C:\>sc delete "My Sample Service" 历史 11/28/2012:文章和代码的初始版本。

    4.3K20

    Windows计算器项目全流程案例:从需求到架构到实现

    这一设计理念在多个技术实现中得到体现,既包括传统MFC框架下的文档/视图分离实践,也涵盖基于现代设计模式的架构优化方案。...Lambda绑定减少了成员函数定义,简化了短逻辑事件的处理流程,尤其适用于简单交互场景(如按钮提示、状态切换)。...静态链接会将MFC库的代码直接嵌入可执行文件中,使得应用程序在运行时无需依赖目标系统中已安装的MFC运行时库,从而消除因库版本不匹配或缺失导致的“应用程序无法启动”问题。...表驱动法则用于优化大量条件判断逻辑,通过将运算符与对应处理函数映射为表格,替代冗长的if-else或switch语句,减少代码冗余并提升可读性[39][59]。...此外,重构技术体现在多个环节:如使用Lambda表达式封装命令执行逻辑,简化事件绑定代码;通过MFC的文档/视图架构分离数据与界面,提升代码复用率;动态控件调整(如EASYSIZE宏)实现界面自适应布局

    39410

    将 WPF 窗口嵌入到 MFC 窗口中

    方案1 MFC + .NET Framework WPF 参照如下博客的说明,使用 MFC + .NET Framework WPF 的方式,实现嵌入功能。...MFC + .NET Framework WPF 方案的问题 1 需要将现有 MFC 项目修改成 C++/CLI 项目(添加托管运行时支持) 这个需要根据实际情况,或许修改之后会有其它影响 2 在部分电脑上...不确定是哪里的问题。 方案2 MFC + .NET Core WPF 以上使用 .NET Framework 的方案,是参考上面搜索出来的博客来实现的。现在更推荐使用 .NET Core 版本。...这就需要一个 C++/CLI 的中间层项目,来进行中转,与 《C++ 调用 C# - C++/CLI 方案》 中提到的是一样的。...(); return ptr;} Step3 MFC 中添加对中间层 C++/CLI 的引用 与 《C++ 调用 C# - C++/CLI 方案》 中提到的一样,需要如下步骤: 项目->属性->

    1.1K10

    c++DLL编程详解

    在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。...(2)动态链接库随处可见   我们在Windows目录下的system32文件夹中会看到kernel32.dll、user32.dll和gdi32.dll,windows的大多数API都包含在这些DLL...(3)VC动态链接库的分类   Visual C++支持三种DLL,它们分别是Non-MFC DLL(非MFC动态库)、MFC Regular DLL(MFC规则DLL)、MFC Extension DLL...非MFC动态库:不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写的应用程序所调用; MFC规则DLL :包含一个继承自CWinApp的类,但其无消息循环 MFC扩展DLL:采用MFC...程序员在建立一个DLL文件时,连接器会自动为其生成一个对应的.lib文件,该文件包含了DLL 导出函数的符号名及序号(并不含有实际的代码)。在应用程序里,.lib文件将作为DLL的替代文件参与编译。

    2.8K60

    visual C++ 项目和解决方案的区别

    程序通常由一个或多个包含用户代码的源文件,可能还要加上包含其它辅助数据的文件组成。...例如,用于企业经营的分布式订单录入系统可能由若干个不同的程序组成,而各个程序是作为同一个解决方案内的项目开发的,因此,解决方案就是存储与一个或多个项目有关的所有信息的文件夹,这样就有一个或多个项目文件夹是解决方案文件夹的子文件夹...扩展名为.suo的文件,其中记录着应用于该解决方案的用户选项。 扩展名为.sdf的文件,记录着与解决方案的Intellisense有关的数据。...但关闭此选项以后也会有很多不便,例如写程序时的智能提示没有了。 .sln文件和.suo文件为MFC自动生成的解决方案文件,它包含当前解决方案中的工程信息,存储解决方案的设置。...因为C++没有提供GUI的内置支持,如果要用C++创建一个窗口,我们需要使用系统API或者使用封装了系统API的一些库,前者如Win32系统API后者如MFC、wxWidgets等。

    2K30

    C++基础语法梳理:Windows 的动态链接库

    得到 3、16 位的系统目录,即 Windows 目录中的 System 子目录 4、Windows 目录,可以通过 GetWindowsDirectory 得到 5、进程的当前目录 6、PATH 环境变量中所列出的目录...HMODULE hInstDll, PCSTR pszSymbolName // 只能接受 ANSI 字符串,不能是 Unicode ); 复制代码 DumpBin.exe 查看 DLL 信息 在 VS 的开发人员命令提示符...一个程序的 I/O 指代程序与外界的交互,包括文件、管程、网络、命令行、信号等。更广义地讲,I/O 指代操作系统理解为 “文件” 的事物。...C 语言运行库(CRT) 大致包含如下功能: 启动与退出:包括入口函数及入口函数所依赖的其他函数等。 标准函数:有 C 语言标准规定的C语言标准库所拥有的函数实现。...(limits.h & float.h) 变长参数(stdarg.h) 非局部跳转(setjmp.h) 今天的分享就到这里了,大家要好好学C++哟~ 写在最后:对于准备学习C/C++编程的小伙伴,如果你想更好的提升你的编程核心能力

    1.6K00

    CC++程序员 面试经历总结

    (面试最后一个问题,居然卡住了,看来得好好看看操作系统了) 二、互联网面试 1、设计模式相关 (1)画出命令模式的类图 (2)使用C++语言实现单例模式类 (3)使用C++语言实现工程模式类 2、数据结构和算法...4、MFC中CSocket类能不能用在多个线程中,请说明原因。 5、IOCP在服务器中的应用,其特点和优势是什么,主要解决了什么问题。 6、存储过程是什么?在ADO和ODBC中存储过程如何使用?...消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。 # 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。...pFun被定义为一个指向参数列表为in,int*,返回值为int的函数指针,这种类型即函数指针可以用于定义一种指针类型,指向某种系列类型的函数,通常用于回调函数。 2、以下C++代码段会输出什么?...六、总结 这段时间好好看看《高质量C++编程-林锐.PDF》这本书,以及数据结构、操作系统、MFC相关的东西。

    2.6K31

    【操作系统】多线程之线程同步

    其线程ID用于标识系统中的哪个线程当前拥有互斥对象,计数器用于指明该线程拥有互斥对象的次数。 创建互斥对象 :调用CreateMutex,调用成功,该函数返回所创建的互斥对象的句柄。...函数,用命令行启动 int main(int argc,char* argv[]) { //初始化套接字库 WORD wVersion; WSADATA wsaData;...; 用于指明改时间处于已通知状态还是未通知状态的布尔值。...如果是在MFC中使用的话,可以在类的构造函数initxxx中调用InitializeCriticalSection函数,在该类的析构函数中调用DeleteCriticalSection函数,在所需要保护的代码前调通用...B如果访问关键代码段时,使用了多个临界区对象,就要注意防止线程死锁的发生。 另外,如果需要在多个进程间的各个线程间实现同步的话,可以使用互斥对象和事件对象或者信号量。

    80730

    QT Creator 快速入门教程 读书笔记(一)

    Qt 是应用程序开发的一站式解决方案!Qt 虽然庞大,封装较深,但它的速度并不慢,虽不及MFC,但比Java、C#要快。Qt 程序最终会编译成本地代码,而不是依托虚拟机。...Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业,这些地方都有 Qt 的影子。...提示:在 Windows 下,GUI 解决方案比较多,基于C++的有 Qt、MFC、WTL、wxWidgets、DirectUI、Htmlayout,基于C#的有 WinForm、WPF,基于Java的有...跨平台:如果你的程序需要运行在多个平台下,同时又希望降低开发成本,Qt 几乎是必备的。...总起来说,Qt 主要用于桌面程序开发和嵌入式开发。

    4.9K60

    为.NET应用添加截图功能

    本文介绍了 .NET 实现截图功能的思路和过程,如果你仅想了解最后的解决方案,可以直接查看文章末尾。...截图软件除了我们经常用的聊天工具和系统自带的 Win + Ctrl + S外,我用起来感觉最好的还是 C++ 写的开源软件 flameshot[1] ,功能非常强大。...以上只是针对单个显示器的情况,若有多个显示器,则需要增加鼠标所在显示器的逻辑。 虽然听起来不难,但代码实现起来还是有许多要注意的细节。...首先 SendKeys 就不支持发送 Windows 徽标按键,我们需要通过 WinAPI keybd_event 来替代实现,然后还要获取到截图结束的事件。...,我们可以自行启动截图软件,启动截图软件读取剪贴板Clipboard.GetImage() 一套结束,无缝无感,堪称完美: Process snippingToolProcess = new Process

    1.2K20

    奇技淫巧技术-注册表的操作

    .reg文件使用以及操作 一丶Reg文件 首先这里不讲Winapi等一系列操作注册表的方式,只说一下 reg文件操作的方式 1.reg文件的导入 reg文件是可以双击进行导入的....也可以使用CMD 命令进行导入 如下: ? 如果要导入 就用 Reg Import reg import xxx.reg 具体可以查看cmd命令 2.reg文件的导出 ?...主要是 注意 /y 是可以不用提示的. 3.regedit导入方式 另外一种方式是使用 regedit导入 regedit /s xxx.reg 使用/s 选项 注意.reg文件. reg有人说后面有多出的...4个空格.会导致导入失败或者成功 这个没有尝试. 4.总结 以上所有方法.均可以使用 C++ 实现, 假设你构造好一个.reg,直接使用 普通权限就可以导入 然后你懂的....二丶C++ 代码导入reg文件黑屏问题 C++ 如果使用 system("reg import xxx.reg") 使用如上代码,会出现一个一闪而过的黑框,原因是使用了system这个函数,我们只需要改为如下即可

    58030

    【MFC拓展库】上海道宁与BCGSOFT合作为您带来专业的Micrisoft Windows开发业务组件

    库拥有500多个经过全面设计测试和充分记录的MFC扩展类其组件可以轻松地集成到应用程序中并节省数百个开发和调试时间一、开发商介绍BCGSoft Ltd.成立于1998年,是一家专门为Microsoft...它不仅仅是一个新控件 - 它是一种新的用户界面理念。功能区控件将传统的工具栏和菜单替换为选项卡式组(类别)。每个选项卡在逻辑上分为面板,每个面板可能包含各种控件和命令按钮。...编辑器库适用于大量应用程序 - 从简单的聊天客户端到复杂的开发工具。主要产品功能01、语法高亮支持BCGPEdit支持两个级别的高度可定制的语法突出显示。...您可以覆盖这些功能并将您想要的任何逻辑合并到编辑控件中。02、语言定义的 XML 模式编辑器允许使用我们强大而灵活的XML方案定义机制定义任何所需的编程语言。...BCGSuite 包括这些组件以及许多其他专业设计的 GUI 控件。BCGSuite库有100多个经过彻底设计、测试和完整记录的MFC扩展类。

    8.3K20
    领券