这些天很忙,写一个类似防火墙的东西在WINSOCK2 SPI上做DLL,终于把问题解决了,现提供完整C++项目下载
2008-08-13 10:47
666 查看
总结一下经验,其实网上有很多介绍(也贴出了很多代码,可惜这些代码都或多或少的存在一些问题),笔者当时碰到的一个问题是当操作系统异常中断(掉电等等),系统再次启动的时候卡在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 程序 下载
安装程序 下载
这几天千辛万苦终于解决了,总结了一些经验:
1.WSCInstallProvider等方法是UNICODE编码,注意了你的项目要么是完完全全的UNICODE,要么使用WCHAR,wcscpy等UNICODE的方法和变量(局部使用UNICODE不取可,我当时抄网上的代码就是这种,使用TCHAR,_tcscpy的,后来发现混合编码编程中,宏定义在VS2005中会发生不可预料的编译,也许是太混乱了).
2.dll中过多的使用了InitializeCriticalSection等LOCK导致dll在加载的时候死锁
3.dll中使用了一些上层的东西,而dll本身是运行在下层,这些上层东西在系统重启动的时候无法初始化通过.
改天再写一个简易版代码发上来. 今天终于有空了,现提供完整项目下载.部分代码来自网上,经过我的调试和修改.
SPI 程序 下载
安装程序 下载
相关文章推荐
- 为大家提供一个完整的Hibernate Annotation项目_源码下载
- 为大家提供一个完整的Hibernate Annotation项目_源码下载
- 解决一个项目里面加载两个同名不同版本的DLL的问题
- 解决导入maven项目时下载出错不完整报Failure to transfer 等问题
- 如何使用Maven的archetype快速生成一个新项目(解决生成项目目录不完整问题)
- 综合项目之闪讯破解(六)之 如何解决程序/C++Dll的兼容性问题
- 为大家提供一个完整的Hibernate Annotation项目_源码下载
- 某项目要调用现有的100多个DLL 三 先解决为一个类型做一个跨域的问题
- 自己动手写中文分词解析器完整教程,并对出现的问题进行探讨和解决(附完整c#代码和相关dll文件、txt文件下载)
- 自己动手写中文分词解析器完整教程,并对出现的问题进行探讨和解决(附完整c#代码和相关dll文件、txt文件下载)
- 通过iframe引入另外一个项目中的html片段到项目中,解决样式,高度,兼容等问题的策略
- IIS中预览错误问题的解决办法(HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射 )
- 关于以前下载本人项目源码问题:FreetextBox.dll缺少的问题
- 今天解决了一个C++中动态二维数组的问题
- 初次使用VS2010基于C++开发项目碰到的问题及解决方法
- 移动项目中JAVA与C/C++编解码相关的JNI动态库问题(.dll vs .so)
- 项目过程中,有c++控件,层级问题的解决
- C/C++/C#问题记录(一)VS2012编译调用dll项目找不到lib的workaround
- [爬虫项目]scrapy使用ImagePipeline下载图片And图片分类存储(解决路径问题)
- 用ASP.NET做项目,本本上的系统是XP,网上下载了IIS6,安装完后出现HTTP500问题,解决之.接着出现了浏览页面时跳出登陆框让输用户名及密码,GOOGLE了一下,原来是权限不够,解决方法