- 博客(14)
- 资源 (11)
- 收藏
- 关注
原创 HWND_BROADCAST的一个用法——修改环境变量,立即通知系统
在编程时遇到一个问题: 就是程序通过修改注册表,修改了系统的环境变量,但是不会立即生效,除非在【我的电脑】上点击右键,然后打开环境变量的窗口,点击【OK】后,才能生效。后来用Spy++工具捕获消息,发现在点击【OK】按钮时,发送了WM_SETTINGCHANGE消息。在网上查找原因时发现,修改了注册表之后,系统需要重启,或者向上述操作,系统才能知道注册表被修改了,之后才能生效。如果想修改完环境变量
2008-03-31 13:37:00 7842 3
转载 P2P 之 UDP穿透NAT的原理与实现
参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。 首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络
2008-03-24 17:07:00 935
转载 P2P 之 TCP穿透NAT的原理
原文:http://www.andrew.cmu.edu/user/ggw/WBFD.pdf摘要防火墙和网络地址转换(NAT)设备对于传统的P2P协议存在一定的问题。一些中间设备抑制了来自外部网络到内部网络的TCP请求,这篇文章的目的就是寻找一个能够在两个NAT设备内部的主机间建立TCP连接的方法。我们已经在两个普通的硬件条件下实现了这个功能。1.入门由于32位IP地址的减少,现在出现了很
2008-03-24 16:49:00 1389
转载 单播、组播、广播的区别和特点
转自:http://run.bloghome.cn/posts/99860.html当前的网络中有三种通讯模式:单播、广播、组播,其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。1.单播: 主机之间一对一的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同 的工作。但由于其能够针对每个客户的及时响
2008-03-19 10:19:00 1813
转载 socket相关函数(一)————ioctlsocket()
简述: 控制套接口的模式。 #include int PASCAL FAR ioctlsocket( SOCKET s, long cmd, u_long FAR* argp); s:一个标识套接口的描述字。 cmd:对套接口s的操作命令。 argp:指向cmd命令所带参数的指针。 注释: 本函数可用于任一状态的任一套接口。它用于获取与套接口相关的操作参数,而
2008-03-13 16:16:00 2622
原创 IT好网址大全
记录个人觉得不错的IT网站。1. 网络大典。 里面有很系统的网络相关知识和文章。 http://www.networkdictionary.cn/index.php
2008-03-12 12:04:00 1157
转载 Grub常见错误
引用: 1 : Filename must be either an absolute filename or blocklist 解释 :1号错误表示文件名格式错误。在 GRUB 中要么是以绝对路径给出文件 例子 : grub> kernel vmlinuz root=label=/ Error 1: Filename must be either an absolute pathna
2008-03-08 12:20:00 2686
原创 使用Grub来启动多操作系统
GRUB(GRand Unified Bootloader)是一个多重启动管理器。它可以在多个操作系统共存时选择引导哪个系统。GRUB 的功能很多,对于一般的使用者来说主要要知道ROOT,SETUP,INSTALL,ROOTNOVERIFY,CHAINLOADER,GRUB.CONF,针对不同文件系统的STAGE1,STAGE2文件,就可以了。ROOT的使用格式是:ROOT(HDX,Y) 其中
2008-03-08 12:19:00 987
转载 BoundsChecker检测内存泄露
BoundsChecker 是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误。BoundsChecker能检测的错误包括:1))1、指针操作和内存、资源泄露错误,比如:内存泄露;资源泄露;对指针变量的错误操作。22、内存操作方面的错误,比如: 内存读、写溢出; 使用未初始化的内存。33、API函数使用错误BoundsChecker安
2008-03-07 10:45:00 1268 2
转载 VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏
首先,检测内存泄漏的基本工具是调试器和 CRT 调试堆函数。为了使用调试堆函数,必须在要检测内存泄漏和调试的程序中添加下面的语句: #define _CRTDBG_MAP_ALLOC #include #include #include "debug_new.h" MSDN 如是说:“必须保证上面声明的顺序,如果改变了顺序,可能不能正常工作。”至于这是为什么,我们不得而知。MS 的老大
2008-03-06 16:19:00 862
转载 使用调试器和CRT库来查找内存泄漏
设置内存泄漏检测检测内存泄漏的基本工具是调试器和CRT调试堆函数。为了使用调试堆函数,在你的程序中你必须含有下面的说明:#define _CRTDBG_MAP_ALLOC#include #include #include说明必须按顺序说明。如果你改变了顺序,你所用的函数可能不能正常工作。包含crtdbg.h的_malloc_dbg和 _free_dbg将 malloc和free函数映
2008-03-06 16:16:00 1926
转载 如何在VC++ 6.0中启用内存泄漏检测?
VC++ IDE 的默认状态是没有启用内存泄漏检测机制的,也就是说即使某段代码有内存泄漏,调试会话的 Output 窗口的 Debug 页不会输出有关内存泄漏信息。你必须设定两个最基本的机关来启用内存泄漏检测机制。 一是使用调试堆函数: #define _CRTDBG_MAP_ALLOC #include #include 注意:#include 语句的顺序。如果更改此顺序,所使用的
2008-03-06 15:46:00 1078
转载 浅谈C/C++内存泄漏及其检测工具
对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以 应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成
2008-03-06 09:37:00 1173
原创 C++ 判断文件是否存在
#include #include using namespace std; #define FILENAME "stat.dat" int main() { fstream _file; _file.open(FILENAME,ios::in); if(!_file) { cout } else {
2008-03-05 09:42:00 1509
Symbian OS Communications Programming 2rd Edition
2009-02-25
Developing Series 60 Applications: A Guide for Symbian OS C++ Developers
2009-02-25
Unified Modeling Language User Guide
2008-07-07
递归实现n重循环
2008-06-26
VC访问Postgre数据库
2008-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人