C++/VC++编程
文章平均质量分 68
yxz149
这个作者很懒,什么都没留下…
展开
-
VC实现生成BMP文件(DDA算法画直线)
最近老师布置一道作业,用DDA算法画出直线,本人在此基础上实现了生成客户区内容为BMP文件的类。其中一些细节问题值得注意,所以贴出来分享~~DDA算法实现画直线中山大学 叶新州 一. 实验内容用DDA算法思想画出一条线段.本程序开发于VC.Net平台,基于MFC框架,实现了根据起始坐标(有平面坐标)来画出线段、并且能保存客户区图片位未压缩BMP文件. 二.原创 2006-03-15 20:33:00 · 6865 阅读 · 0 评论 -
UDP用打洞技术穿透NAT的原理与实现
首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。转载 2007-02-28 16:59:00 · 7490 阅读 · 6 评论 -
VC++动态链接库编程之DLL木马
DLL在程序编制中可作出巨大贡献,它提供了具共性代码的复用能力。但是,正如一门高深的武学,若被掌握在正义之侠的手上,便可助其仗义江湖;但若被掌握在邪恶之徒的手上,则必然在江湖上掀起腥风血雨。DLL正是一种这样的武学。DLL一旦染上了魔性,就不再是正常的DLL程序,而是DLL木马,一种恶贯满盈的病毒,令特洛伊一夜之间国破家亡。 DLL木马的原理DLL木马的实现原理是编程者在DLL中包含木马程序代码,转载 2006-06-10 16:56:00 · 833 阅读 · 0 评论 -
关于 volatile
并不是我故意想弄糟你的心情,但是在这期专栏里,我们将讨论多线程编程这一话题。正如上一期Generic里所说的,编写异常安全(exception-safe)的程序是非常困难的,但是和编写多线程程序比起来,那简直就是儿戏。 多线程的程序是出了名的难编写、难验证、难调试、难维护,这通常是件苦差事。不正确的多线程程序可能可以运行很多年也不出一点错,直到满足某些临界的条件时,才出现意想不到的奇转载 2006-10-04 13:35:00 · 913 阅读 · 0 评论 -
lpcstr与lpctstr的区别
LPCSTR A 32-bit pointer to a constant character string.LPSTR A 32-bit pointer to a character string.LPCTSTR A 32-bit pointer to a constant character string that is portable for Unicode andDBCS转载 2006-10-04 13:31:00 · 2332 阅读 · 0 评论 -
基于UDP协议的广播程序实例
今晚写了一个简单的局域网内同一子网的广播程序,总结起来关键 点主要是:1。往同一子网内所有机器发送消息的地址为: 255.255.255.255 这是TCP/IP协议关于IP分配中规定的,其他特殊的地址也有不同的意义~具体可以参考RFC 相关文档2。广播消息只能给予UDP协议,原因是UDP是面向无连接的,不像TCP一样正式通信之前要进行“三次握手”,从而建立端对端(end to end)的原创 2006-09-18 01:10:00 · 1705 阅读 · 0 评论 -
关于 #pragma pack(n)
在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。 例如,下面的结构各成员空间分配情况:struct tes转载 2006-09-14 23:01:00 · 1113 阅读 · 0 评论 -
UDP协议的WinSock API编程示例
Server 端: WORD wVersion; WSADATA wsaData; sockaddr_in server_addr,client_addr; char buff[1024]; wVersion=MAKEWORD(2,2); if (WSAStartup(wVersion,&wsaData)!=0)原创 2006-09-12 16:08:00 · 2901 阅读 · 0 评论 -
Windows Shell 编程
最近在做一个程序,其中用到了Windows Shell编程技术,现在总结一下。。。关键知识:SetCurrentDirectory() Windows API函数CFileFind 类,CFileFind::FindFile() , CFileFind::FindNextFile()等函数注意:最后使用完CFileFind 要关闭CFileFind::Close()void原创 2006-09-08 22:38:00 · 1696 阅读 · 0 评论 -
利用DAO访问SQL数据库
DAO(Data Access Object)是基于OLE DB的COM组件,利用它可以非常容易访问各种数据库,这里介绍用DAO方法访问Microsoft SQL Server的方法。(使用DAO之前要调用AfxOleInit()函数)关键类:CDaoDatabase类、CDaoRecordset类、COleVariant类的使用。 关键函数:CDaoDa原创 2006-08-30 14:12:00 · 1740 阅读 · 0 评论 -
深入浅出Win32多线程程序设计之基本概念
引言 从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。 理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win32多线程程序设计后,理解和学习其它操作系统的多任务控制也非常容易。许多程序员从来没转载 2006-03-27 18:16:00 · 1337 阅读 · 0 评论 -
wchar_t* 转换为 char* 的简单示例
由于在VC++.NET 2005默认是使用宽字节符合的,而有时候在有些变量却一定要用普通字符,所以就要进行转换。下面就是示例。 CString ServerAddr,Port; GetDlgItem(IDC_EDIT1)->GetWindowText(ServerAddr); GetDlgItem(IDC_EDIT2)->GetWind原创 2007-05-10 01:48:00 · 2632 阅读 · 0 评论