首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 准备工作——修改向导添加WinSock支持
【标  题】:准备工作——修改向导添加WinSock支持
【关键字】:WinSock
【来  源】:http://blog.csdn.net/happycock/archive/2006/03/29/643273.aspx

准备工作——修改向导添加WinSock支持

要想使用WinSock必须在调用前加载相应的DLL,通常是调用WSAStartup来完成,这个函数一般放在WinMain,然后在程序结束的时候调用WSACleanup(其实不调用也行,不过“那就不符合WinSock规范”了),还需要链接ws2_32.lib。虽然不是很麻烦,考虑到以后我们要写得此类程序还很多,每次都要做如此乏味的事情也很让人不爽。所以,我们要让向导来为我们做这项工作,并且你将同时学会如何修改向导。

VS6的向导实际上是DLL,这就没办法了(你要是会修改DLL文件的资源,也可以参照下文来做);VS.NET的向导界面是HTML,模板是.cpp.h.rc之类的半成品文件,里面有脚本能识别的关键字和变量,执行部分是脚本,生成程序文件的脚本是IDE提供的。WTL这些文件在WTLDIR\ AppWiz\ Files\

WTLDIR\ AppWiz\ Files\HTML\..\AppType.htm

首先我们修改AppType.htm,注意我们要在源代码方式下修改(其实拿记事本打开就行,VS.NETIDE更好,还可以所见即所得)。找到

<BR>

<INPUT CLASS="CheckBoxA" TYPE="checkbox" ID="WTL_USE_MANIFEST" ACCESSKEY="A" TITLE="Add a manifest to enable Common Controls 6." value="ON" NAME="WTL_USE_MANIFEST">

<DIV CLASS="itemTextCheckboxB" ID="WTL_USE_MANIFEST_DIV" TITLE="Add a manifest to enable Common Controls 6.">

<LABEL FOR="WTL_USE_MANIFEST" TITLE="Add a manifest to enable Common Controls 6." ID="WTL_USE_MANIFEST_LABEL"><U>A</U>dd Common Controls Manifest</LABEL>

</DIV>

复制一份粘贴在下面,依葫芦画瓢修改成

<BR>

<INPUT CLASS="CheckBoxA" TYPE="checkbox" ID="WTL_USE_WINSOCK" ACCESSKEY="S" TITLE="Add WinSock Support." value="ON" NAME="WTL_USE_WINSOCK">

<DIV CLASS="itemTextCheckboxB" ID="WTL_USE_WINSOCK_DIV" TITLE="Add WinSock Support.">

<LABEL FOR="WTL_USE_WINSOCK" TITLE="Add WinSock Support." ID="WTL_USE_WINSOCK_LABEL">Add Win<U>S</U>ock Support.</LABEL>

</DIV>

如果愿意美化一下界面就辛苦一下,把页面摆得漂亮点,不过在设计方式下修改好像容易引起未知错误,因为所见即所得生成的代码有可能有问题。

WTLDIR\ AppWiz\ Files\ Templates\..\root.cpp

接下来修改root.cpp,在下面代码的后面

[!if WTL_COM_SERVER]

 

       hRes = _Module.Init(ObjectMap, hInstance);

       ATLASSERT(SUCCEEDED(hRes));

 

[!else]

 

       hRes = _Module.Init(NULL, hInstance);

       ATLASSERT(SUCCEEDED(hRes));

 

[!endif]

添加

[!if WTL_USE_WINSOCK]

       WSADATA wsaData;

       WSAStartup(MAKEWORD(2,2), &wsaData);

[!endif]

    _Module.Term();的前边添加

[!if WTL_USE_WINSOCK]

       WSACleanup();

[!endif]

WTLDIR\ AppWiz\ Files\ Templates\..\stdafx.h

最后修改stdafx.h,在文件末尾添加

[!if WTL_USE_WINSOCK]

#pragma comment(lib, "ws2_32.lib")

[!endif]

一个IE补丁的原代码:【上一篇】
总结:ADO.NET在开发中的部分使用方法和技巧:【下一篇】
【相关文章】
  • WinSock初学入门:实现TCP服务器
  • 基于VC的WinSock网络编程实用宝典
  • 在用WINSOCK实现聊天室时的一些总结
  • 异步非阻塞套接字Winsock开发网络通信程序的经典入门
  • winsock i/o的select模型的学习测试
  • VB中用Winsock控件发信Email
  • Write Scalable Winsock Apps Using Completion Ports
  • 学习API HOOK,编写了一个winsock 的封包抓取程序,可免费使用;
  • [原创]Winpcap中IPv6与IPv4编程中Winsock的版本和兼容问题(附录)
  • [原创]Winpcap4编程中Winsock的版本和IPv4与IPv6的兼容问题
  • 【随机文章】
  • Eclipse+tomcat的安装配置
  • 如何使用脚本来创建 GUID?
  • 邮件群发的事故处理
  • 第一个sqlite3程序
  • 简单实用的网页表格特效
  • ASP.net中随机数应用实例(2)
  • MySQL 简单入门
  • 光滑表面反光效果长圆形按钮制作技法
  • 编辑php源码,更改print_r的输出方式
  • Debian系统配制工具
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.