
windows编程
文章平均质量分 60
nodeathphoenix
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
windows 钩子技术简介
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到转载 2012-05-24 11:00:08 · 1117 阅读 · 0 评论 -
MultiByteToWideChar 详解
之前经常用到看到这个API,但是中文资料的解释似乎都不太清楚也不太全。今天找了下英文资料,从MSDN上得到了详细而满意的答案。MDN链接如下:http://msdn.microsoft.com/en-us/library/windows/desktop/dd319072(v=vs.85).aspx int MultiByteToWideChar( __in UIN原创 2012-07-28 10:11:04 · 1698 阅读 · 0 评论 -
MD /MDD /ML /MT /MTD的简单介绍
在编译ATL工程后,生成的dll在本电脑上能用,在别人的电脑上不能用。通过Depends工具分析一下,原来是编译选项没有选对,别的电脑上没有我生成的dll需要的基础dll文件,选成静态链接库就好了。故而总结一下几个编译选项,主要来自于参考1中链接网址;当然,更详细的介绍可以参见参考2中microsoft网址上介绍。1、VC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL转载 2012-04-05 13:01:50 · 1070 阅读 · 0 评论 -
Windows和Linux dll区别
动态库程序编写,在Windows系统下的执行文件格式是PE格式,动态库需要一个DllMain函数作为初始化的人口,通常在导出函数的声明时需要有_declspec(dllexport)关键字。Linux下的gcc编译的执行文件默认是ELF格式,不需要初始化入口,亦不需要到函数做特别声明,编写比较方便。对于windows dll,从下表我们可以看出三种DLL对DllMain入口函数的不原创 2013-01-05 15:04:38 · 1658 阅读 · 0 评论 -
Windows 中_T和L
_T("")是一个宏,定义于tchar.h下。[1] #define _T(x) _ _T(x) #ifdef _UNICODE #define _ _T(x) L ## x #else /* ndef _UNICODE */ #define _ _T(x) x 他的作用是让你的程序支转载 2012-07-10 16:11:07 · 4146 阅读 · 1 评论 -
Windows静态库和动态库的调用方法汇总
静态库的调用方法第一种:项目设置中引用,在项目的属性中设置。 第二种:在代码中使用 #progma comment(lib,"lib文件名"); 第一种方法: 步骤一: 右键单击项目—>属性—>配置属性—>链接器—>常规—>附加库目录 在其中填入lib库的目录,也可以是相对或绝对路径。 步骤二: 右键单击项目—>属性—>配置属性—>链接器—>输入—>附加依赖原创 2013-02-22 11:45:53 · 5727 阅读 · 0 评论 -
Windows编程 MD(d)、MT(d)编译选项的区别
1、编译选项的位置以VS2005为例,这样子打开:1) 打开项目的Property Pages对话框2) 点击左侧C/C++节3) 点击Code Generation节4) 右侧第六行Runtime Library项目2、各个设置选项代表的含义编译选项包含静态链接的l转载 2012-05-09 16:27:41 · 18258 阅读 · 0 评论 -
Thrift 入门
1下载https://thrift.apache.org/download 下载编译好的release可执行文件:Thrift compiler forWindows (thrift-0.9.2.exe) 2安装把thrift-0.9.2.exe改名为thrift.exe放到path环境变量中存在的目录下,如:C:\Windows 改名为thrift.e原创 2014-11-19 15:52:44 · 3007 阅读 · 2 评论 -
C++编写Windows服务
使用C++ 编写Windows 服务,我所看的文章如下(红色的"=" 以内, 来自http://www.programfan.com/article/2920.html ):==============前一段时间我写了一篇通过写服务的形式来达到一些监视程序运行的目的的 文章 ,至于如何在windows 下写服务我没有详细介绍,今天就让 我们 一起看看如何来写服务程序。转载 2014-04-20 14:03:24 · 16758 阅读 · 3 评论 -
Windows上通过程序写入回车字符
Windows上,对于含有\n回车字符的字符串,通过程序以二进制和文本两种方式写入到文件里的结果是不一样的。 如果是通过程序,以文本的方式向文件中写入'\n'字符,windows会自动将'\n'字符保存为'\r\n';如果以二进制格式打开文件写入,则直接保存为'\n'字符。原创 2015-04-28 10:51:30 · 1188 阅读 · 0 评论 -
VC工程中的字符集工程属性和字符编码
工程属性里,字符集可以选择“Use Unicode Character Set”和“Use Multi-Byte Character Set”。此选项只控制代码里的API是用宽字符版的还是ANSI字符版的,它控制不了代码里的字符常量是用Unicode编码还是ANSI编码。如果选择了“Use Unicode Character Set”,则代码里用到的API被解释为UNICODE版本的API原创 2013-11-01 22:57:43 · 5971 阅读 · 0 评论 -
Windows进程内标准输出重定向及其在程序调试上的应用
一、如何实现 打印调试信息的方法有很多,最常用的是使用标准输出设备(如printf、cout等),也可以用OutPutDebugString输出、用 DebugView工具查看,还可以写入日志文件。如果程序运行需要记录日志(log),往往需要打开个文件,或许是写入系统事件、用系统的事件查看器查看。 应用程序打印调试信息、日志的方法往往是确定的,但如果是要编写一个模块或者说组件,那样的输转载 2013-08-23 11:38:09 · 3931 阅读 · 0 评论 -
Windows编程 在一个模块中分配的内存在另外一个模块释放?
linux下跑得一直很好的程序,到了windows下面就跑不起来了。内存异常,检查了一下,很快发现是因为在主程序中释放了一块在DLL中分配的内存,这种问题虽然早就知道了,但是一直没有仔细考虑过,所以今天就深入研究了一下。在linux下,每个进程只有一个heap,在任何一个动态库模块so中通过new或者malloc来分配内存的时候都是从这个唯一的heap中分配的,那么自然你在其它随便什么转载 2012-05-09 16:48:22 · 1625 阅读 · 0 评论 -
sql语句单引号的使用
SQL 使用单引号来环绕文本值。如果是数值,请不要使用引号。 因为整个sql语句是一个字符串,那么里面如果需要再嵌套字符串的话呢就必须用单引号括起来,而不能用双引号括起来的。 ' '是字符界定符,告诉SQL你输入的是字符;否则如果不加单引号的话,SQL就默认为数值型的了。 文本值:这是正确的:SELECT * FROM Persons WHERE FirstN原创 2012-07-31 13:37:21 · 1956 阅读 · 0 评论 -
windows 静态库和动态库
首先,偶们说第一个:静态链接库(Static Libary)偶们用VS2005做一个静态链接库先打开VS2005,新建à项目(staticCai)àWin32控制台应用程序新建static_lib.h 和static_lib.cpp 两个文件,这两个文件的内容如下: static_lib.h: int add(int x,int y);int subs转载 2012-02-01 17:26:20 · 776 阅读 · 0 评论 -
与Windows服务的通讯
在应用程序或其他服务中,可以与Windows服务通讯,包括: 管理Windows服务的生命期,即开启、停止、暂停和重启服务; 获得Windows服务的属性和状态; 获得特定计算机上的服务列表; 向特定的服务发送命令。 这些操作是通过ServiceController 类完成的。ServiceControlle转载 2013-02-26 16:58:52 · 3951 阅读 · 0 评论 -
GMT UTC和DST
许多人都知道两地时间表简称为GMT或UTC,而世界时区表则通称为World Time,那么GMT与UTC的实质原意又是为何?世界时区又是怎么区分的?面盘上密密麻麻的英文单字代表着什么意义与作用呢?这些都是新手在接触两地时间表或世界时区表时,脑海中所不断浮现的种种疑问,以下将带您一探时区奥妙的究竟。 世界时区及国际换日线示意图 全球24个时区的划分 相较于转载 2013-03-28 14:54:10 · 1418 阅读 · 0 评论 -
WCF开发实战系列一:创建第一个WCF服务
在这个实战中我们将使用DataContract,ServiceContract来构建WCF服务,并使用VS2008内置的“WCFSVCHost”运行我们创建的WCF服务,并使用“WCF测试客户端”来测试我们创建的服务。在此WCF服务中我们将建立一个关于Book的服务,并实现对Book的添加、删除和检索操作。 第一步:创建“WCF服务库”“文件(F)”->“新建项目(P)...”打开新建转载 2013-04-05 18:48:22 · 2969 阅读 · 0 评论 -
Windows上的字符转换之CP_ACP和CP_OEMCP
实际使用时的简单快速判断规则:1、对于多字节编码的环境(泰文,日文,韩文,中文),CP_ACP与CP_OEMCP没有区别。2、对于单字节编码的环境这两个代码页不同1)对应的实际代码页不同,例如English-US的环境,ACP对应1252,OEMCP而437。2)一个字节能表示的数值范围是(0-255),对于小于128的编码,437和1252对应的字符是一样的。3)对于大于转载 2013-04-01 17:29:33 · 2186 阅读 · 0 评论 -
常用的宏
编码的时候经常要用到条件编译,每次都到网上去查比较浪费时间,今天总结一下以备后用 编译器 GCC#ifdef __GNUC__#if __GNUC__ >= 3 // GCC3.0以上 Visual C++#ifdef _MSC_VER(非VC编译器很多地方也有定义)#if _MSC_VER >=1000 // VC++4.0以上 #if _MSC_转载 2013-08-10 20:41:25 · 751 阅读 · 0 评论 -
Compile openssl on windows
ActivePerl window安装程序下载:http://downloads.activestate.com/ActivePerl/ OpenSSL的源码:http://aspn.activestate.com/ASPN/Downloads/ActivePerl/ 注意ActivePerl下载的是x64还是x86,这里我下载的是x86. 首先,解压OpenSSL原创 2012-10-25 13:25:28 · 1787 阅读 · 0 评论