Windows开发
danforn
纳言敏行,随遇而安
展开
-
ActiveX技术综述
本文结合目前Internet(WEB)技术发展动向,简略介绍了Microsoft提出的ActiveX技术的内容,阐述了ActiveX技术与WEB站点建设和桌面程序开发的关系,以及利用Visual C++和Visual Basic 开发ActiveX部件的步骤和方法,并给出了在WEB网页中使用ActiveX部件的例子。 1. ActiveX概要 1.1. ActiveX的定义 ActiveX是Mi转载 2008-09-25 16:08:00 · 1101 阅读 · 0 评论 -
Windows 2000下的Raw Socket编程
Windows2000在TCP/IP协议组件上做了很多改进,功能也有增强。比如在协议栈上的调整,增大了默认窗口大小,以及高延迟链接新算法。同时在安全性上,可应用IPSec加强安全性,比NT下有不少的改进。 Microsoft TCP/IP 组件包含“核心协议”、“服务”及两者之间的“接口”。传输驱动程序接口 (TDI) 与网络设备接口规范 (NDIS) 是公用的。 此外,还有许多用户模型应用程序的转载 2008-05-14 20:34:00 · 1336 阅读 · 0 评论 -
VC6.0编译错误解决方法集锦
linking... server.obj : error lnk2001: unresolved external symbol __imp__send@16 server.obj : error lnk2001: unresolved external symbol __imp__wsagetlasterror@0原创 2008-05-15 08:52:00 · 6172 阅读 · 0 评论 -
VC++用SDK实现分隔条
Windows中的分隔条是一种被广泛使用的控件,绝大多数Explorer式样的应用程序都使用了这种控件。 事实上,分隔条也是一个很普通的窗口,它也拥有自己的窗口类、自己的窗口过程——就像所有的预定义控件一样。也就是说,要创建一个分隔条,也需要进行窗口类的注册和窗口的创建。以下的示例代码示范了如何注册一个分隔条的窗口类: WNDCLASS wc; wc.cbClsExtra = 0; wc.cb转载 2008-05-12 15:38:00 · 1435 阅读 · 0 评论 -
MFC中动态控件的创建与响应
动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。一、创建动态控件:为了对照,我们先来看一下静态控件的创建。放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。静态控件不需要调用Cre转载 2008-07-10 18:17:00 · 1701 阅读 · 0 评论 -
Windows网络编程经验小结
1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));转载 2008-07-08 09:54:00 · 1025 阅读 · 0 评论 -
如何将多个文件捆绑成一个可执行文件
将多个文件合并成一个最终可执行文件,运行这个最终合成文件后,就相当于运行了合并前的多个文件。这种程序在木马程序合并中会经常用到,你想知道它是怎么用程序实现的么?下面我就拿我用VC6.0做的一个文件捆绑器的实例代码来告诉你基本构成思想:其实,文件捆绑的构成思想非常简单,它主要可分为合并文件和分解释放文件二大部分。合并文件时:建立一个新的二进制文件,先写入你的捆绑程序的自身数据和其文件长度,再写入你要转载 2008-05-05 09:52:00 · 1705 阅读 · 0 评论 -
vc动态添加弹出菜单和响应函数
方法:MFC中利用CMenu类动态添加弹出菜单和响应函数步骤:1 声明一个菜单: CMenu menu;2 生成菜单对象: menu.CreatePopupMenu();3 给菜单添加上内容: menu.AppendMenu(MF_STRING,WM_CLEARHOSTS,"清除HOSTS"); AppendMenu函数具体的意义可以查看转载 2008-05-04 09:27:00 · 3308 阅读 · 1 评论 -
MFC框架原理以及消息运行机制
(1)Windows程序内部运行机制 1,windows程序设计是种事件驱动方式的程序设计,主要基于消息的。当用户需要完成某种功能时,需要调用OS某种支持,然后OS将用户的需要包装成消息,并投入到消息队列中,最后应用程序从消息队列中取走消息并进行响应。2,消息结构:typedef struct tagMSG { // msg HWND hwnd; //接原创 2008-05-04 11:19:00 · 9119 阅读 · 7 评论 -
Dialog 中使用ON_UPDATE_COMMAND_UI
由于项目中大量的使用Dialog 并且dialog中的子控件在某些条件下要disable 显示。为了更加方便的控制和统一我们的编码。在dialog 中要使用 ON_UPDATE_COMMAND_UI 进行处理,好处是代码简单,容易修改控制 使用方法: 1,重载CDialog 的ContinueModal()虚函数 2,在ContinueModal()中添加代码:UpdateDialog原创 2008-04-24 15:59:00 · 4765 阅读 · 0 评论 -
进程和线程有什么区别
说法一:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同原创 2008-05-21 09:26:00 · 15828 阅读 · 11 评论 -
Windows 的抢先式多任务中的多线程编程
在32位的Windows系统中,采用的是抢先式多任务,这意味着程序对CPU的占用时间是由系统决定的。系统为每个程序分配一定的CPU时间,当程序的运行超过规定时间后,系统就会中断该程序并把CPU控制权转交给别的程序。与协同式多任务不同,这种中断是汇编语言级的。程序不必调用象PeekMessage这样的函数来放弃对CPU的控制权,就可以进行费时的工作,而且不会导致系统的挂起。 例如,在Windo原创 2008-05-20 13:31:00 · 2484 阅读 · 0 评论 -
对话框拖动及其禁止方法
禁止拖动对话框方法:在WM_HITTEST对应的消息处理函数OnNcHitTest中直接返回TRUE, 或者当指向对话框标题栏时,返回客户区的值HTCLIENT例子:UINT CWelcomeDlg::OnNcHitTest(CPoint point) { // TODO: Add your message handler code here and/or call defaul原创 2008-05-23 15:02:00 · 3337 阅读 · 0 评论 -
关于DLL函数
一 关于DLL的函数: 动态链接库中定义有两种函数:导出函数(export function)和内部函数(internal function)。 导出函数可以被其它模块调用,内部函数在定义它们的DLL程序内部使用。 输出函数的方法有以下几种: 1、传统的方法 在模块定义文件的EXPORT部分指定要输入的函数或者变量。语原创 2008-10-20 14:35:00 · 1829 阅读 · 1 评论 -
VC++编译选项说明
-优化- /O1 最小化空间 minimize space /Op[-] 改善浮点数一致性 improve floating-pt consistency /O2 最大化速度 maximize speed /Os 优选代码空间 favor code space /Oa 假设没有别名 assume no aliasing /Ot 优选代码速度 favor code speed /Ob原创 2008-09-23 16:17:00 · 1056 阅读 · 0 评论 -
MFC常用控件
1 Tab Ctrl Tab属性页控件可以在一个窗口中添加不同的页面,然后在页选择发生改变时得到通知。MFC中使用CTabCtrl类来封装属性页控件的各种操作。通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些属性页控件的专用风格:原创 2008-06-27 12:28:00 · 4217 阅读 · 0 评论 -
Windows API函数大全 分类速查
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetClo转载 2008-06-20 14:05:00 · 1996 阅读 · 0 评论 -
MFC之文件对话框的作用和用法
//文件对话框创建CFileDialog Filedlg(TRUE, //打开文件NULL, NULL, //打开路径OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR | OFN_ALLOWMULTISELECT|OFN_EXPLORER,原创 2008-06-17 15:43:00 · 3757 阅读 · 0 评论 -
VC++实现对文件夹时间的修改
引言: 通常在数据维护与数据管理等工作中,经常要对各类数据进行备份操作。对于大多数的IT企业和绝大多数的个人用户而言,数据的备份主要是对数据内容的简单备份,而很少涉及对备份数据自身属性如文件属性、所在文件夹的时间属性等内容的备份。而在某些对数据管理有着非常严格要求的特殊行业中,对以上这些相关属性信息的备份也是同等重要的。但是在目前的Windows操作系统下,不论是直接通过手工进行数据备份转载 2008-06-16 15:19:00 · 1394 阅读 · 1 评论 -
MFC的CListCtrl的使用与技巧
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格:原创 2008-06-03 16:33:00 · 24307 阅读 · 2 评论 -
VC常用数据类型使用转换详解
CString ,BSTR ,LPCTSTR之间关系和区别CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。typedef OLECHAR FAR* BSTR;typedef const char * LPCT原创 2008-05-31 16:33:00 · 1022 阅读 · 0 评论 -
MFC多线程编程
1. 表现——错误示例关于启动线程时传输窗口对象(指针?句柄?)的问题: 在选择菜单中的开始线程后: void cmainframe::onmenu_start() { ... afxbeginthread(mythread, this); ... } 线程原创 2008-05-27 12:15:00 · 2503 阅读 · 1 评论 -
VC中_T()的作用
Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。_T一般同字常数相关,如_T("Hello")。如果你编译一个程序为ANSI方式,_T实际原创 2008-04-17 14:34:00 · 3830 阅读 · 0 评论 -
VC中的DoDataExchange函数解析
void CRegisterDialog::DoDataExchange(CDataExchange* pDX)...{CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CRegisterDialog)DDX_Control(pDX, IDC_INCOME, m_ctrlIncome);DDX_LBString(pDX, IDC_INCOME, m_s原创 2008-04-18 17:58:00 · 3303 阅读 · 0 评论 -
vc++如何实现远程调试
*假设调试机IP 192.168.0.182 远程机IP 192.168.0.161*远程机为调试机分配权限,使调试机可以使用远程桌面登陆到远程机器上(这样调试起来方便)。*调试机上安装visual studio .net 2003共享调试机上的Visual Studio上的远程调试目录(以机器为例)C:/Program Files/Microsoft Visual Stu原创 2007-09-26 13:46:00 · 1391 阅读 · 0 评论 -
游戏外挂设计技术探讨
一、 前言 所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。 不管游戏外挂程序是不是“合法”身份,但是它却是具有一定的技术含量的,在这些小小程序中使用了许多高端技术,如拦截转载 2007-09-25 23:08:00 · 1105 阅读 · 0 评论 -
Windows网络命令行大全
网络经典命令行1.最基本,最常用的,测试物理网络的ping 192.168.0.8 -t ,参数-t是等待用户去中断测试2.查看DNS、IP、Mac等A.Win98:winipcfgB.Win2000以上:Ipconfig/allC.NSLOOKUP:如查看河北的DNSC:/>nslookupDefault Server: ns.hesjptt.net.cnAddress: 202.99.160.原创 2007-07-26 16:31:00 · 2593 阅读 · 0 评论 -
Windows常用命令集
winver---------检查windows版本 wmimgmt.msc----打开windows管理体系结构(wmi) wupdmgr--------windows更新程序 w脚本--------windows脚本宿主设置 write----------写字板 winmsd---------系统信息 wiaacmgr-------扫描仪和照相机向导原创 2007-07-26 16:29:00 · 1082 阅读 · 0 评论 -
常用DOS命令
dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录copy 拷贝文件 diskcopy 复制磁盘 del 删除文件 format 格式化磁盘edit 文本编辑 mem 查看内存状况 md 建立子目录原创 2007-07-26 15:47:00 · 918 阅读 · 0 评论 -
批处理文件编写
扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 其次,批处理文件是一种简单的程序,可以通过条件语句(if)原创 2007-07-26 15:05:00 · 1804 阅读 · 0 评论 -
Windows批处理命令与用法
一.简单批处理内部命令简介1.Echo 命令打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。语法echo [{on|off}] [message]Sample:@echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体原创 2007-07-25 15:02:00 · 3940 阅读 · 0 评论 -
DOS批处理文件
DOS下的可执行文件有三种,分别是EXE,COM和BAT。其中,EXE和COM文件都是二进制形式的,只有BAT文件是文本形式的,可以直接阅读。因此,BAT文件和以上二进制可执行文件相比,内容要简单的多。这些文件内包含着DOS命令的集合,通常叫作批处理文件。批处理文件的组成虽然比较简单,但其用处非常大,使用也比较广泛。比如每次都执行一些相同的命令,您一定会觉得非常麻烦,而放在批处理文件中执行原创 2007-07-25 12:29:00 · 830 阅读 · 0 评论 -
windows进程中的内存结构
接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Regeist转载 2006-12-01 15:55:00 · 1364 阅读 · 0 评论 -
VC用法汇总 (一)
(1)如何通过代码获得应用程序主窗口的指针?主窗口的指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2)确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Example:TCHARexe转载 2007-09-26 13:43:00 · 4201 阅读 · 0 评论 -
在VC中添加响应自定义的消息的代码方法
1. 首先定义一个消息代码 #define WM_DEBUG WM_USER + 1999 2. 在窗口头文件中添加 class CStreamServerDlg : public CDialog{// Generat原创 2007-09-26 13:48:00 · 978 阅读 · 1 评论 -
Windows C++ API函数大全
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNet原创 2007-11-07 10:31:00 · 4117 阅读 · 0 评论 -
Windows:Debug和Release build区别
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于 ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而 Release版本需要MFC42.DLL支持。Release Build不对源代码进行调试,不考虑MFC的诊断原创 2008-04-18 15:15:00 · 2604 阅读 · 0 评论 -
PreTranslateMessage作用和使用方法
PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,可以改变MFC的消息控制流程,甚至可原创 2008-04-18 15:01:00 · 1513 阅读 · 0 评论 -
CreateEvent的用法
事件对象就像一个开关:它只有两种状态---开和关。当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”。可以在一个线程的执行函数中创建一个事件对象,然后观察它的状态,如果是”无信号”就让该线程睡眠,这样该线程占用的CPU时间就比较少。 产生事件对象的函数如下: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES原创 2008-04-18 13:30:00 · 12465 阅读 · 3 评论 -
#pragma warning作用及使用方法
1. #pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。2. #pragma warning(push)存储当前报警设置。#pragma warning(push, n)存储当前报警设置,并设置报警级别为n。n为从1到4的自然数。3. #原创 2008-04-12 15:15:00 · 3025 阅读 · 0 评论