zoukankan      html  css  js  c++  java
  • 这些天很忙,写一个类似防火墙的东西在WINSOCK2 SPI上做DLL,终于把问题解决了,现提供完整C++项目下载

    总结一下经验,其实网上有很多介绍(也贴出了很多代码,可惜这些代码都或多或少的存在一些问题),笔者当时碰到的一个问题是当操作系统异常中断(掉电等等),系统再次启动的时候卡在dll,无法启动,这是一个很大的问题,原来的代码参考了费尔防火墙那种强写注册表的方式,事实证明这种方式是不妥当,在VISTAS上无法运行,于是用系统方法WSCInstallProvider,使用了网上的一些代码,结果dll安装老是不对,也不能完全解决无法启动问题,打开一个新IE结果整个控制台死了.

          这几天千辛万苦终于解决了,总结了一些经验:

          1.WSCInstallProvider等方法是UNICODE编码,注意了你的项目要么是完完全全的UNICODE,要么使用WCHAR,wcscpy等UNICODE的方法和变量(局部使用UNICODE不取可,我当时抄网上的代码就是这种,使用TCHAR,_tcscpy的,后来发现混合编码编程中,宏定义在VS2005中会发生不可预料的编译,也许是太混乱了).

          2.dll中过多的使用了InitializeCriticalSection等LOCK导致dll在加载的时候死锁

          3.dll中使用了一些上层的东西,而dll本身是运行在下层,这些上层东西在系统重启动的时候无法初始化通过.

    改天再写一个简易版代码发上来.  今天终于有空了,现提供完整项目下载.部分代码来自网上,经过我的调试和修改.

    SPI 程序 下载

    安装程序  下载

  • 相关阅读:
    TCP—为什么是AIMD?
    虚拟机是怎么实现的?
    漫谈linux文件IO
    关于大型网站技术演进的思考
    大公司里怎样开发和部署前端代码
    spawn-fcgi 代码介绍
    使用python传参form-data格式的txt请求接口
    实战scrapy抓取站长图片数据
    通过requests和lxml模块对网站数据进行爬取
    centos7.5下安装jenkins
  • 原文地址:https://www.cnblogs.com/legahero/p/SPI.html
Copyright © 2011-2022 走看看