
[Windows]环境编程
文章平均质量分 52
零点零一
Make it right before you make it faster. Keep it right when you make it faster. Make it clear before you make it faster. Do not sacrifice clarity for small gains in efficiency. -- Brian Kernighan
展开
-
用VS2008编译warning C4819的处理
用VS2008编译编译一款引擎的代码的时候,出现了很多warning C4819: The file contains a character that cannot be represented in thecurrent code page (936).原创 2021-12-01 10:53:06 · 272 阅读 · 0 评论 -
MFC vc 开发过程中出现错误C2248
MFC vc开发过程中出现错误: 错误详细内容如下:error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'C:\Program Files (x86)\Microsoft Visual Studio 8\VC\atlmfc\include\afx.h原创 2021-12-01 10:49:36 · 405 阅读 · 0 评论 -
Windows常用的几种线程同步技术
Windows常用的几种线程同步技术。当 有多个线程的时候,经常需要去同步这些线程以访问同一个数据或资源。例如,假设有一个程序,其中一个线程用于把文件读到内存,而另一个线程用于统计文件中 的字符数。当然,在把整个文件调入内存之前,统计它的计数是没有意义的。但是,由于每个操作都有自己的线程,操作系统会把两个线程当作是互不相干的任务分 别执行,这样就可能在没有把整个文件装入内存时统计字数。为解决此问题,你必须使两个线程同步工作。存在一些线程同步地址的问题,Win32提供了许多线程同步的方式。在本..原创 2021-09-07 15:55:47 · 1264 阅读 · 0 评论 -
Windows的关机和重起
/*第六节 Windows的关机和重起很多木马都有远程关机功能,但这并不是一个很好的功能.不过对于入侵服务器,有时需要重起服务器.其实对于关机和重起,只需要调用几个API函数即可实现.对于WIN9X系统,可以直接调用,对于WIN2K以上,出于安全考虑,稍有不同,下面分别看一下.9X系统:ExitWindowsEx(EWX_LOGOFF,0); //注销ExitWindo转载 2017-04-07 16:30:40 · 340 阅读 · 0 评论 -
Windows Api : GetSystemInfo与GetNativeSystemInfo的区别
MSDN中介绍,GetSystemInfo被用来获取当前系统的相关信息,但是笔者在使用中出现了问题。笔者的操作系统是Windows 7 64位,在win32工程中调用此函数,发现得到的cpu架构居然是x86,显然不对。经过查找资料,笔者发现有网友也遇到了相同的问题并建议调用GetNativeSystemInfo,结果果然正确。现在将此问题记录下来分享给大家。因为真正的强人不是技术有多强,而是能转载 2017-04-12 13:40:27 · 4633 阅读 · 0 评论 -
windows编程--如何判断操作系统是64位还是32位
64位Wnidows 里面有个叫GetNativeSystemInfo 可以获得这个信息。 代码示例:SYSTEM_INFO si; GetNativeSystemInfo(&si); if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 || si.wProcess转载 2017-04-12 13:43:14 · 867 阅读 · 0 评论 -
SetWindowPos
SetWindowPosSetWindowPos函数改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。转载 2017-04-17 16:50:41 · 1633 阅读 · 0 评论 -
windows编程列出文件夹内所包含的文件-MSDN例子
Listing the Files in a DirectoryThe following example calls FindFirstFile, FindNextFile, and FindClose to list the files in a specified directory.Note that the only limitation on the number of fil转载 2017-04-13 15:06:30 · 589 阅读 · 0 评论 -
电脑提示应用程序已停止工作异常代码40000015如何解决
电脑提示应用程序已停止工作异常代码40000015如何解决这种情况,一般都是由 系统软件、内存、引起的。电脑提示应用程序已停止工作异常代码40000015如何解决https://tieba.baidu.com/p/4705135894电脑提示应用程序已停止工作异常代码40000015如何解决转载 2017-04-28 11:52:31 · 20123 阅读 · 0 评论 -
c/c++调用libcurl库发送http请求
C++使用libcurl做HttpClienthttp://blog.youkuaiyun.com/huyiyang2010/article/details/7664201curl的使用实例 cpp封装 http://blog.chinaunix.net/uid-20384806-id-1954334.htmlc/c++调用libcurl库发送http请求的两种基本转载 2017-04-28 12:48:35 · 1897 阅读 · 0 评论 -
VirtualProtect,是对应 Win32 函数的逻辑包装函数,它会在呼叫处理程序的虚拟位址空间里,变更认可页面区域上的保护。
VirtualProtectVirtualProtect,是对应 Win32 函数的逻辑包装函数,它会在呼叫处理程序的虚拟位址空间里,变更认可页面区域上的保护。目录1 方法▪ 传回值▪ 描述▪ 备注2 访问类型方法当做对应之 Win32 函数的逻辑包装函数。VirtualProtect 的 Win32 实作会在呼叫处理序的虚拟位址空间里,变更认可转载 2017-04-18 10:31:39 · 1258 阅读 · 0 评论 -
通过WriteProcessMemory改写进程的内存
http://www.cnblogs.com/feiyucq/archive/2009/10/21/1587628.html以PROCESS_ALL_ACCESS权限打开进程以后既能够使用ReadProcessMemory读取程序内存,也能够使用WriteProcessMemory改敲代码的内存,这也是一些内存补丁使用的招数,下面是程序的实现代码#include #include转载 2017-04-18 14:14:08 · 12057 阅读 · 0 评论 -
关于*.dsw文件的关联,禁止双击后vs2008打开vc6的工程项目
关于*.dsw文件的关联,禁止双击后vs2008打开vc6的工程项目这个问题很烦人,于是找到一位老兄写的解决办法.因为自己的电脑上同时安装了vs2005和vc++6.0,使得工作空间文件(*.dsw)默认为vs2005的,而单击鼠标右键后所显示的打开方式选项中,也找不到vc++6.0的,所以带来了诸多的不便。于是自己动手,解决之~具体的步骤是:打开我的电脑 -> 单击工原创 2012-01-18 11:41:56 · 2346 阅读 · 1 评论 -
MIDL编译器是什么
MIDL编译器MIDL编译器处理一个IDL文件以生成类型库和输出文件。由MIDL编译器生成的输出文件的类型取决于IDL文件的接口属性列表中指定的属性。如果属性列表包含[ object ]关键字,则MIDL编译器将生成COM接口输出文件:接口代理文件,接口头文件和接口的全局唯一标识符(GUID)文件。如果IDL文件包含库语句,MIDL将生成带.tlb文件扩展名的类型库文件。如转载 2017-04-14 11:46:20 · 5041 阅读 · 0 评论 -
如何将ActiveX控件添加到Visual C ++项目
将ActiveX控件添加到Visual C ++项目以下过程将ActiveX控件的dispatch类和头文件添加到Visual C ++项目。将ActiveX控件添加到Visual C ++项目在项目菜单上,单击添加到项目。出现快捷菜单。单击组件和控件。将显示“ 组件和控件库 ”对话框。单击要添加到项目的组件。Visual C ++显示一个对话框,您可以从中选择转载 2017-04-14 11:47:53 · 2011 阅读 · 1 评论 -
_CrtDbgReport: String too long or IO Error错误的产生情况和处理 使用setlocale函数
_CrtDbgReport: String too long or IO Error_CrtDbgReport: String too long or IO Error wprintf_s不能正常输出中文的解决办法使用如下方法调用wprintf_s输出中文时往往出现带?的乱码:wprintf_s(L"%s",(LPCWSTR)cmdLineArr[1]); 解决方案转载 2017-04-13 13:49:11 · 2428 阅读 · 0 评论 -
关于32位DLL文件在64位操作系统中无法注册办法
关于32位DLL文件在64位操作系统中无法注册办法32位编译器下编写的接口文件,之前在32位XP系统下都是好用的,但电脑升级成64位的Win7\Win8系统后,再使用CMD环境进行注册时,提示错误,注册不成功。1、首先通过资源管理器 进入C:\Windows\SysWOW64 (c为系统盘)2、找到CMD.exe 并右键选择“以管理员身份运行”;3、使用CD命令返回到刚才转载 2017-04-20 10:56:45 · 12831 阅读 · 0 评论 -
标准的ANSI C字符串函数和它们的等价Unicode函数 字符串处理函数对照表[宽字符处理与ANSI字符处理]
标准的ANSI C字符串函数和它们的等价Unicode函数常用函数对照ANSIUNICODE通用说明数据类型(char.h)(wchar.h)(tchar.h) charwchar_tTCHAR char *wchar_t *TCHAR* LPSTRLPWSTR转载 2017-04-20 13:09:54 · 965 阅读 · 0 评论 -
windows内核编程读书摘抄
Windows API中的某些函数,比如Wi n E x e c和O p e n F i l e等,只是为了实现与1 6位Wi n d o w s程序的向后兼容而存在,因此,应该避免使用。应该使用对 C r e a t e P r o c e s s和C r e a t e F i l e函数的调用来取代对Wi n E x e c和O p e n F i l e函数的调用。原创 2017-04-20 13:52:10 · 326 阅读 · 0 评论 -
windows核心编程摘抄内 核 对 象
在介绍Windows API的时候,首先要讲述内核对象以及它们的句柄。什么是内核对象作为一个Wi n d o w s软件开发人员,你经常需要创建、打开和操作各种内核对象。系统要创建和操作若干类型的内核对象,比如存取符号对象、事件对象、文件对象、文件映射对象、I / O完成端口对象、作业对象、信箱对象、互斥对象、管道对象、进程对象、信标对象、线程对象和等待计时器对转载 2017-04-20 14:49:41 · 275 阅读 · 0 评论 -
CreateWaitableTimer和SetWaitableTimer函数(定时器)
CreateWaitableTimer和SetWaitableTimer函数(定时器)用户感觉到软件的好用,就是可以定时地做一些工作,而不需要人参与进去。比如每天定时地升级病毒库,定时地下载电影,定时地更新游戏里的人物。要想 实现这些功能,就可以使用定时器的API函数CreateWaitableTimer和SetWaitableTimer来实现了,这对API函数创建的 时钟转载 2017-04-20 14:50:05 · 1867 阅读 · 0 评论 -
慎用USES_CONVERSION 使用和注意
USES_CONVERSION的使用和注意 USES_CONVERSION是用来转换类型的,比如我们很常见的问题: 在Socket编程时候,我们的IP地址从界面上输进去一般都使用CString类型的,可是在SOCKADDR_IN中的inet_addr却是const char *我们就不能直接用CString来用。我们就可以使用T2A()宏了。 SOCKADDR_IN转载 2017-04-17 11:05:03 · 7830 阅读 · 0 评论 -
USES_CONVERSION的使用和注意事项
首先,先介绍下USES_CONVERSION为何物。USES_CONVERSION是ATL中的一个宏定义。用于编码转换(用的比较多的是CString向LPCWSTR转换)。通俗的说,就是你用了这个宏后,就可以用一系列的字符串转换宏,有OLE到T,T到OLE,OLE到W,W到OLE等等,非常方便。或者说,这个宏会告诉编译器,在紧接的代码中我们要用ole库中代码(如ansi 到unicod转载 2017-04-17 11:57:43 · 732 阅读 · 0 评论 -
我希望进入大学时就能知道的一些事儿
http://blog.youkuaiyun.com/mindfloating/article/details/60598309又读到一篇很好的文章,忍不住就翻译了过来。每个月我可能会读一百来篇来自英语世界的文章,其中可能有些好文会让我忍不住想翻译过来分享下,这也算是百里挑一吧。下面是原文,最后我会写写我的感想。这是一份我给 Berklee College of Music(伯转载 2017-04-21 15:09:13 · 316 阅读 · 0 评论 -
Windows数字签名 数字签名(代码签名)流程
数字签名(代码签名)流程出处:http://www.cnblogs.com/itech/archive/2011/07/21/2110924.htmlAuthenticode : 这里翻译为数字认证代码。 code sign : 字面的翻译为代码签名,但是通常的我们称为数字签名,以下的文中均称为数字签名。一 数字认证码如果你是软件开发人员,你可能转载 2017-04-21 17:56:30 · 16630 阅读 · 2 评论 -
OnQueryEndSession 与 OnEndSession
Windows 在注销、重起、关机 之前会向每个当前正在运行的应用程序发送WM_QUERYENDSESSION消息, 如果该应用程序方便关闭的话,则在此消息的消息响 应函数OnQueryEndSession()中返回非0值(TRUE),否则返回0值(FALSE)。 如果当前系统正在运行的应用程序全部返回非0值, 则Windows的注销、重起、关机过程继续下去,并且向所有运转载 2017-05-04 11:46:30 · 474 阅读 · 0 评论 -
windows编程 控制台程序闪退,一闪而退 怎么处理 处理办法
接着在主函数末尾的地方写一行system(“pause”);如果在控制台程序中编译成功,显示后出现闪退,自己看不到结果的情况,可能是由于编译器配置问题。解决方法:项目->属性->配置属性->链接器->系统->子系统->控制台 增加“/SUBSYSTEM:CONSOLE”链接选项。然后再开始执行(不调试)。也可以通过在程序的尾部通过getchar或者s转载 2017-05-04 17:42:02 · 7673 阅读 · 1 评论 -
Windows混音器API使用
1.首先用mixerGetNumDevs()函数获取系统中的混音器设备的数量。一般,机器上都至少有一个混音器设备——声卡,如果机器上没有连接其它的音频设备,那么也就只有声卡这一个混音器设备。我的机器上接有一个名为USB EMP Audio Dedice的录音设备,所以该函数返回2,表示有两个混音器设备:Realtec AC97 Audio和USB EMP Audio Dedice。UINT u转载 2014-03-12 14:58:04 · 2901 阅读 · 0 评论 -
VS2005这么设置工作路径让找到动态库方便项目管理
VS2005这么设置工作路径让找到动态库方便项目管理一般情况下,依赖的动态库需要拷贝到生成的文件所在的目录,但是生成目录我们通常不放在版本库里面,那么为了维持这个癖好,我最近发现可以经过一番项目属性设置工作目录的方式,来把动态库所在的路径给找到。我觉得比较合理的安排是,项目中使用include,lib两个目录来存储引用的内容,include通常放置头文件,而lib里面放置lib和dll原创 2017-05-04 18:13:36 · 1204 阅读 · 0 评论 -
管道实现进程间通讯 、WaitNamedPipe
一、管道实现进程间通讯基本的理论知识 1.什么是管道以及分类 管道是两个头的东西,每个头各连接一个进程或者同一个进程的不同代码,按照管道的类别分有两种管道,匿名的和命名的;按照管道的传输方向分也可以分成两种,单向的双向的。根据管道的特点,命名管道通常用在网络环境下不同计算机上运行的进程之间的通信(当然也可以用在同一台机的不同进程中)它可以是单向或双向的;而匿名管道只能用转载 2017-04-24 14:05:58 · 8167 阅读 · 1 评论 -
读取msi文件内容
读取msi文件内容 (2011-12-29 10:34:22)转载▼标签: msi it分类: WindowsInstaller所需要的库:Msi.lib; 头文件:Msiquery.h函数调用顺序:(函数的具体用法查看MSDN,msi文件内部结构可通过Orca工具察看) MSIHANDLE h转载 2017-05-25 15:35:54 · 3147 阅读 · 0 评论 -
windows将窗体置顶的方法总结
将窗体置顶的方法有://将窗体置顶的API函数::SetWindowPos(m_hWndTop,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//MFCpDlg->SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); 说明:&CWnd::wndT转载 2017-05-27 09:44:09 · 7192 阅读 · 0 评论 -
VerQueryValue函数从指定的版本信息资源中检索指定的版本信息。
VerQueryValue函数-------------------------------------------------- ------------------------------VerQueryValue函数从指定的版本信息资源中检索指定的版本信息。要在调用VerQueryValue之前检索适当的资源,必须先调用GetFileVersionInfoSize函数,然后调用Get翻译 2017-05-31 15:32:09 · 2715 阅读 · 0 评论 -
windos sdk windows系统信息:获取或设置硬件信息
Platform SDK: Windows System Information Getting Hardware InformationThe following examples get or set hardware information.Example 1The following example uses the GetSystemInfo function to obta转载 2017-06-01 10:19:56 · 1013 阅读 · 0 评论 -
取得目录和取得操作系统盘符以及获取系统盘可用空间
1.取得当前目录[cpp] view plain copychar szModulePath [_MAX_PATH]; /* Path of Module */ // Get current module handle HMODULE module = GetModuleHandle(0);转载 2017-06-16 16:57:23 · 3583 阅读 · 0 评论 -
对象析构谈—— delete this 的使用及注意事项
In order to understand "delete this" :First Step - dive into "delete p"delete p 执行了哪些步骤?delete p 是一个两步的过程:调用析构函数(释放类里边涉及new的内存),然后释放内存(类本身占的内存)。delete p产生的代码看上去是这样的(假设是Object转载 2017-06-06 17:46:30 · 3938 阅读 · 0 评论 -
vc 方面的IOCP模型与网络编程 资料
IOCP模型与网络编程 http://blog.youkuaiyun.com/neicole/article/details/7549497百度百科的介绍http://baike.baidu.com/link?url=T6rQ3AQzgF7lc0rUeziAhZAYuIn7RNDZPBSmuHMs2hW9Y1ygOEIMeAA5_zS3fcMkpM8Tn9qblhBWbM8JXIhiBq转载 2017-06-07 14:35:54 · 431 阅读 · 0 评论 -
WMI使用的WIN32_类库名 WMI使用的WIN32_类库名 包括:硬件类、操作系统类、安装应用程序类、WMI服务管理类、性能计数器类
WMI使用的WIN32_类库名WMI使用的WIN32_类库名包括:硬件类、操作系统类、安装应用程序类、WMI服务管理类、性能计数器类1、硬件类冷却类别Win32_Fan--风扇Win32_HeatPipe--热管Win32_Refrigeration--致冷Win32_TemperatureProbe--温度传感输入设备类别Win32_Key转载 2017-06-29 11:15:14 · 660 阅读 · 0 评论 -
关于使用WMI获取杀毒软件信息
在学习本文前,你需要一点点的VBS基础,WMI了解常识,COM接口皮毛就行。 今天的问题是,如何获得系统中安装的杀毒软件?有人会说遍历注册表之类的。其实用不着这么麻烦。每个正式的AV(Anti-Virus)软件,都要向系统注册自己。通过查看WMI中的/root/SecurityCenter这个名称空间,我们就能知道其中装了那些反病毒产品。我们来看一段Vbs代码:[v转载 2017-06-29 11:55:12 · 2721 阅读 · 0 评论 -
WMI中的命名空间与路径
WMI中的命名空间与路径http://www.myexception.cn/operating-system/503093.html在WMI内部,使用了类似于驱动器中的文件夹与文件的管理方式。命名空间类似于文件夹,其中的CIM类则类似于文件夹。所有的CIM类都被分门别类地归入相应的命名空间,同一命名空间内不允许有重名的类存在,不同的两上命名空间下则允许重名的类出现。整个空间的根是名转载 2017-06-29 15:14:42 · 2939 阅读 · 0 评论