这两天开始了在Vista下开发驱动的历程。但一开始碰到一个比较严重的问题,一编译原来用DriverStudio向导生成的工程,Visual Studio 2005便停止了响应。由于DriverStudo 3.2可以正常运行,所以一开始没有想到是DriverStudio的问题,首先想到的是关闭Vista的用户帐户控制(UAC),但是关闭后症状依然。没有办法,只好祭出调试&反编译的大旗,一步步检查,发现使Visual Studio停止响应的罪魁祸首是DriverStudio的插件模块DSDDKEnv8.dll。
由于DriverStudio已经停止了开发,所以指望官方发布补丁肯定是不现实的。那么如何继续使用DriverStudio提供的便捷的代码生成向导呢?如何成功编译原有的DriverStudio向导生成的工程呢?
目前我觉得只有一个比较简便的权宜之计。 为了成功编译原有的DriverStudio向导生成的工程,只能卸载DSDDKEnv8.dll,即regsvr32 DSDDKEnv8.dll /u,然后启动DDK提供的Build Environment,从这里启动Visual Studio之后编译工程即可。但是由于DriverStudio向导创建的工程使用了一些DDK的Build Environment没有设置的环境变量,比如TARGET_INC_PATH,可以在DDK的Build Environment中设置:set TARGET_INC_PATH=%SDK_INC_PATH%,下面是针对Windows XP Build Environment的设置例子:
set TARGET_INC_PATH=%SDK_INC_PATH%
set _WIN32_WINNT=0x0501
set WINVER=0x0501
set _WIN32_IE=0x0500
set TARGET_LIB_PATH=%DDK_LIB_PATH%/i386
当需要继续使用DriverStudio提供的便捷的代码生成向导时,可以直接调用DriverWizard在开始菜单中的快捷方式。
如果有哪位高人发现能够通过patch DSDDKEnv8.dll的方式解决问题,欢迎留言交流。
由于DriverStudio已经停止了开发,所以指望官方发布补丁肯定是不现实的。那么如何继续使用DriverStudio提供的便捷的代码生成向导呢?如何成功编译原有的DriverStudio向导生成的工程呢?
目前我觉得只有一个比较简便的权宜之计。 为了成功编译原有的DriverStudio向导生成的工程,只能卸载DSDDKEnv8.dll,即regsvr32 DSDDKEnv8.dll /u,然后启动DDK提供的Build Environment,从这里启动Visual Studio之后编译工程即可。但是由于DriverStudio向导创建的工程使用了一些DDK的Build Environment没有设置的环境变量,比如TARGET_INC_PATH,可以在DDK的Build Environment中设置:set TARGET_INC_PATH=%SDK_INC_PATH%,下面是针对Windows XP Build Environment的设置例子:
set TARGET_INC_PATH=%SDK_INC_PATH%
set _WIN32_WINNT=0x0501
set WINVER=0x0501
set _WIN32_IE=0x0500
set TARGET_LIB_PATH=%DDK_LIB_PATH%/i386
当需要继续使用DriverStudio提供的便捷的代码生成向导时,可以直接调用DriverWizard在开始菜单中的快捷方式。
如果有哪位高人发现能够通过patch DSDDKEnv8.dll的方式解决问题,欢迎留言交流。