百度空间 | 百度首页 
 
文章列表
 
您正在查看 "win32/wtl" 分类下的文章

2009年07月19日 星期日 下午 08:30

近期初学winsock2……,编写了一个小小的使用IOCP的服务器测试程序。总结了一下程序的重点部分:

为何使用IOCP:

1、传统的socket服务程序流程是这样:

创建侦听socket -> 绑定socket和IP、端口号 -> listen() -> 循环accept客户端的连接、收发数据recv/send

此模型很古董,俺觉得也没什么实用价值……因为accept()函数,revc()/send()都是阻塞式的,如果有客户端响应慢等情况,服务器线程会卡在这些函数上出不来,状似瘫痪。

2、多线程模型:

与前面

类别:win32/wtl | 评论(0) | 浏览()
 
2009年03月04日 星期三 下午 09:04

      假如在 List View Control 中显示一些文件和它们的图标,但是这些文件存放在数据库中,不是真实存在于硬盘上面的文件,通过SHGetFileInfo()函数可以实现此功能。

      SHGetFileInfo()函数可以获取真实存在的文件的图标,也可以根据扩展名获取实际上不存在的文件的图标。在List View创建初始化时,加入如下代码:

类别:win32/wtl | 评论(5) | 浏览()
 
2008年10月22日 星期三 下午 11:00

  下面这个例子将"ping 127.0.0.1"原本在命令行窗口输出的内容,显示到窗口程序的消息框中 。以下的代码是Windows应用程序的一部分,需加到完整的程序中才能使用

  void go(HWND hwnd)
  {
    char * ping = "PING 127.0.0.1"; // 命令
    char pbuf[1024]; // 缓存
    DWORD len;
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    HANDLE hRead1, hWr

类别:win32/wtl | 评论(0) | 浏览()
 
2008年10月22日 星期三 上午 11:03

Windows平台下主要的内存管理途径:
new / delete
malloc / free
CoTaskMemAlloc / CoTaskMemFree
IMalloc::alloc / IMalloc/free
GlobalAlloc / GlobalFree
LocalAlloc / LocalFree
HeapAlloc / HeapFree
VirtualAlloc / VirtualFree

VirtualAlloc以页面为单位(4K)进行分配,是操纵虚拟内存的底层函数。

HeapAlloc在指定堆上分配内存。

类别:win32/wtl | 评论(0) | 浏览()
 
2008年10月20日 星期一 下午 04:17

作者:blueelf 

一.本文将向读者介绍下面两个问题的解决方案:
1,用户在资源管理器(Windows Explorer)中剪切/拷贝(Cut/Copy)文件,然后在自己的应用程序中进行粘贴(Paste)操作;
2.用户在自己的应用程序中剪切/拷贝文件,在资源管理其中粘贴操作。

二.本文中的代码编写工具及测试环境:
1,VC6.0, Platform SDK(无

类别:win32/wtl | 评论(0) | 浏览()
 
2008年10月19日 星期日 下午 03:50

WTL提供的CString类在ATL中也提供了相同的类后变得有点鸡肋,并且使用WTL::CString类后,经常会出现标题所示的编译错误。实际上ATL不仅在<atlstr.h>中提供了CString类,还在<atltypes.h>中提供了CPoint、CSize和CRect类,因此,WTL中提供的同名类变得可有可无。我认为还是用ATL中的类会好一些,毕竟WTL没有文档嘛。

因此,应该在工程头文件中包含任何WTL头文件前定义以下两行:

#define _WTL_NO_CSTRING
#define _WTL_NO_WTYP

类别:win32/wtl | 评论(1) | 浏览()
 
2008年10月17日 星期五 下午 03:50

  转自:http://tech.ddvip.com/2006-04/11446393804752.html

        ATL7中除了制作COM和windows组件的大量的工具,还提供了大量的工具类,可以让我们在C++编程方面事半功倍。

  微软在MFC中提供的大都是GUI的工具类,对于组件设计和一些服务的编程,未免有力

类别:win32/wtl | 评论(0) | 浏览()
 
2008年10月14日 星期二 上午 00:32

    根据实验室要求使用WTL编写了具有XP侧边栏风格的程序ExplorerBar,编写完成将重点备忘如下:


    1. 基于SDI的程序中,框架窗口内的View子窗口可以是基于Dialog的,只要创建一个类并派生自CDialogImpl,并在类中声明enum{ IDD = 对话框资源ID }


    2. 如果想重绘Dialog的背景,最好让对应的Dialog关联的类派生自CDoubleBufferImpl类并实现DoPaint函数以双缓冲的形式绘制,这

类别:win32/wtl | 评论(2) | 浏览()
 
2008年10月11日 星期六 下午 04:43

在Win32的GUI程序中,没有控制台窗口,我们输出调试信息时有些不方便,以往我的做法是使用MessageBox弹出对话框、OutputDebugString向VS的调试窗口输出信息等,但总感觉不如控制台输出几句printf有效率。经过尝试发现GUI程序照样能够拥有(且仅能够拥有一个)控制台窗口,具体做法如下:

#include <locale.h>

在程

类别:win32/wtl | 评论(1) | 浏览()
 
2008年10月10日 星期五 下午 08:37

使用WTL的CDoubleBufferImpl类可以方便的实现双缓冲,而不必自己实现繁琐的代码,不仅可以绘制一般窗口,也可以绘制对话框的背景等。

首先 #include <atlframe.h>

其次需要双缓冲画图的类需要派生自CDoubleBufferImpl<>:

class CMainDlg : public CDialogImpl<CMainDlg>, public CDoubleBufferImpl<CMainDlg>{}

然后消息链中加入

类别:win32/wtl | 评论(0) | 浏览()
 
     
 
 
文章分类
 
 
 
 
生活(14)
 
 
 
 
 
Web(1)
 
 
     
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   

回复赵世佳:楼上的正解
 

有意思
 
 
 
 
     


©2009 Baidu