
window编程
文章平均质量分 93
zacklin
这个作者很懒,什么都没留下…
展开
-
动态链接库的数据及动态链接库重定向
动态链接库的数据 DLL可以包含全局数据及局部数据 变量范围DLL变量的默认范围与应用程序所声明的变量作用域相同,DLL源文件中的全局变量对于使用DLL的每个进程是全部可见的。静态变量受限于声明所在块范畴。默认情况下,每个进程具有自己的DLL全局变量及静态变量实例。 你所使用的开发工具可能会允许你超越默认的全局及静态变量范围。更多信息参见开发工具相关文档。 动态内存分配原创 2012-05-04 15:18:15 · 2508 阅读 · 0 评论 -
pragma comment的使用
#pragma comment( comment-type [,"commentstring"] )comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一。commentstring是一个提供为comment-type提供附加信息的字符串,Remarks:1、compiler:放置编译器的版本或者名字到一个对象文件,该原创 2012-06-26 17:42:58 · 572 阅读 · 0 评论 -
windows 网络编程经典入门
我现在的情况是OnAccept()中的异步事件注册不成功,用WSAGetLastError()获得的错误代码为0,用switch无法获得错误消息,下面是原代码,我的代码是在其基础上完善的,框架大致是一样的, 其实我想知道的是accept参数中的Socket参数是用server(正在监听的参数)还是用消息映射函数从Windows中获得的SOCKET pSock = (SOCKET)wPa原创 2012-06-28 15:11:47 · 784 阅读 · 0 评论 -
accept()函数
TCP服务器端依次调用socket()、bind()、listen()之后,就会监听指定的socket地址了。TCP客户端依次调用socket()、connect()之后就想TCP服务器发送了一个连接请求。TCP服务器监听到这个请求之后,就会调用accept()函数取接收请求,这样连接就建立好了。之后就可以开始网络I/O操作了,即类同于普通文件的读写I/O操作。int accept(int原创 2012-06-28 15:33:44 · 1103 阅读 · 0 评论 -
C++ 中stdafx.h中文意思,并且在C++中起到的作用是什么?
Standard Application Fram Extend没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。为避免这种浪费,App原创 2012-07-10 10:00:34 · 727 阅读 · 0 评论 -
afxwin.h 与stdafx.h
(1)Standard Application Frame Extend没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。为避免这种浪费,App原创 2012-07-10 09:49:30 · 2069 阅读 · 0 评论 -
Windows网络编程杂谈
Windows网络编程杂谈关于bind: INADDR_ANY 的具体含义是,绑定到0.0.0.0。此时,对所有的地址都将是有效的,如果系统考虑冗余,采用多个网卡的话,那么使用此种bind,将在所有网卡上进行绑定。在这种情况下,你可以收到发送到所有有效地址上数据包。 例如: SOCKADDR_IN Local; Local.sin_addr.s_addr =原创 2012-06-28 14:12:32 · 787 阅读 · 0 评论 -
c++中Socket通信函数之WSAStartup
socket通信的整个过程: WSAStartup此函数在应用程序中初始化winsockDLLint WSAStartup( __in WORD wVersionRequested, __out LPWSADATA lpWSAData );wVersionRequested 调用程序使原创 2012-06-28 13:41:53 · 9277 阅读 · 0 评论 -
(转)memset和ZeroMemory
1. memset就是将一个内存区全部设置成你指定的值。以字节为单位。 ZeroMemory相当于memset(buffer,0,length)中参数2设置成0。2. memset有个潜在的危险,它的后两个参数类型相同,但是含义大相径庭,如果不慎写反了编译时也不容易查出来;相比起源于Berkerly网络编程代码早期的bezro不是ANSIC函数,但它的两个参数更容易记忆。原创 2012-06-29 10:32:34 · 445 阅读 · 0 评论 -
STARTUPINFO结构体
typedef struct _STARTUPINFO{ DWORD cb; //包含STARTUPINFO结构中的字节数.如果Microsoft将来扩展该结构,它可用作版本控制手段.应用程序必须将cb初始化为sizeof ( STARTUPINFO ) PSTR lpReserved; //保留。必须初始化为N U L L原创 2012-06-29 11:14:12 · 768 阅读 · 0 评论 -
MAKEWORD
MAKEWORD 宏 平台:SDK 这个宏创建一个被指定变量连接而成的WORD变量。返回一个WORD变量。 (注:typedef unsigned short WORD;) WORD MAKEWORD( BYTE bLow, //指定新变量的低字节序; BYTE bHigh //指定新变量的高字节序; ); 例如: WORD wVersionRequested; wVersion原创 2012-06-26 14:31:32 · 3746 阅读 · 1 评论 -
PROCESSENTRY32结构 详细介绍
PROCESSENTRY32 PROCESSENTRY32 Structure Describes an entry from a list of the processes residing in the system address space when a snapshot was taken. 用来存放快照进程信息的一个结构体。(存放进程信息和调用成员输出进程信息) 用原创 2012-07-09 11:21:44 · 10017 阅读 · 3 评论 -
使用.local 重定向DLL 加载路径
在调试DLL或COM程序的时候, DLL文件可能会被其他程序占用,而无法被替换。 在WinXP,Vista 上, 可以通过创建.local 文件夹来重定向DLL 的加载路径 步骤(假设你的EXE为MyApp.exe, 要调试的DLL为 MyModule.dll):1) 在 MyApp.exe 的目录下创建一个 MyApp.exe.local 2) 把你希望加载的 MyModul原创 2012-05-04 17:01:22 · 1403 阅读 · 1 评论 -
__declspec
__declspecwww.diybl.com 时间 : 2008-06-19 作者:佚名 编辑:本站 点击: 2072[ 评论 ]__cdecl和__stdcall都是函数调用规范(还有一个__fastcall),规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的时候就原创 2012-05-08 16:23:58 · 525 阅读 · 0 评论 -
GetModuleFileName函数
在开发软件的过程里,经常需要把数据保存到当前执行文件路径下面,或者读取当前执行文件路径下的一些配置信息。这时就需要从当前模块里获取所在的目录路径,以便进行固定的位置操作文件。要解决这个需求,就需要调用API函数GetModuleFileName来获取模块所在的路径。 函数GetModuleFileName声明如下:WINBASEAPIDWORDWINAPIGetModule原创 2012-05-18 13:45:20 · 649 阅读 · 0 评论 -
Lzma(7-zip) 使用:
在C目录中有算法文件,进入Util\LzmaLib目录,编译生成LIB库,导出了以下两函数,LzmaCompress 为压缩函数,LzmaUncompress 为解压缩函数。MY_STDAPI LzmaCompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t srcLen, unsi原创 2012-05-18 14:25:14 · 2049 阅读 · 1 评论 -
IsBadReadPtr
函数原型:BOOL IsBadReadPtr(CONST VOID *lp,UINT_PTR ucb);参数:lp 表示要检查的内存指针ucb 要检查的内存块的大小返回:如果调用进程有权限访问该内存,返回0否则,返回非0说明:该函数检查调用进程是否有读取指定内存的内容的权限,微软提供的32位操作系统下的API原创 2012-05-18 14:59:27 · 6892 阅读 · 0 评论 -
RING3下 内存清零法 杀进程
在一般任务管理器无法关闭进程时用到内存清零法 杀进程 原理分析1.先打开CSRSS.EXE系统进程,获得其句柄,几乎系统所有的HANDLE结构体中,里面的ProcessId都是指向csrss.exe的,利用它的PID来进行遍历进程实现过滤。2.分配好一块内存空间Buffer,用来存储SystemHandleInformation系统句柄信息3.通过ZwQuerySystem原创 2012-06-11 15:15:11 · 1819 阅读 · 0 评论 -
用 GetEnvironmentVariable 获取常用系统变量
以前曾用 GetWindowsDirectory、GetSystemDirectory、GetTempPath等函数获取系统常用文件夹;也用过 SHGetSpecialFolderLocation、SHGetPathFromIDList函数获取过更多常用路径;但这都不如用 GetEnvironmentVariable 获取系统变量来得快.GetEnvironme原创 2012-07-06 14:12:18 · 2648 阅读 · 0 评论 -
PROCESS_INFORMATION
在创建进程时相关的数据结构之一,该结构返回有关新进程及其主线程的信息。其结构定义如下。 typedef struct_PROCESS_INFORMATION{ HANDLE hProcess; HANDLE hThread;原创 2012-07-06 14:54:18 · 649 阅读 · 0 评论 -
memmove
相关函数: bcopy(), memccpy(),memcpy(), strcpy(), strncpy()表头文件: #include 定义函数: void *memmove(void *dest, const void *src, size_t n);函数说明: memmove()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址上。不同的是,原创 2012-07-17 16:34:04 · 1526 阅读 · 0 评论