vc6编译通用远控的教程
一、搭建vc6编译环境 1、安装VC6.0。 2、安装VC6.0的SP6。 3、安装Visual_Assist_X。 4、安装MSDN。
5、用SDK更新包(如:637500_SDK更新包)的include和lib文件夹覆盖vc6.0安装目录下vc98目录下的同名文件夹。 二、可选安装
1、安装VC6.0的SDK2003并注册(若没有SDK更新包,需自己安装并注册) 1.1、第一种方式注册
选择\开始->程序->Microsoft Platform SDK February 2003->Visual Studio Registration->Register PSDK Directories with Visual Studio\进行注册。 2.2、第二种方式注册
打开Microsoft Visual C++ 6.0,选择\菜单项,在Directories选项卡里设置SDK的目录,如:C:\\Program Files\\Microsoft SDK\\include
2、安装XtremeToolkitPro,如:XtremeToolkitPro15.0.1ForVC.rar。也可以不用安装,直接使用XtremeToolkitPro已经编译好的库。
提示:若安装XtremeToolkitPro编译失败,则需要为vc6.0安装SP6。 三、常见编译错误
1、error C2065: '__in' : undeclared identifier。
1.1、原因分析:这是因为未定义'__in','__in'的定义在specstrings.h文件中,而specstrings.h文件在WDK(Windows Driver Kit)中(SDK更新包也有),安装好WDK后,specstrings.h路径有可能是:C:\\WinDDK\\7600.16385.1\\inc\\api。 1.2、解决方法1:
1.2.1:安装WDK,如:GRMWDK_EN_7600_1.iso
1.2.2:找到出错的文件,在文件前方添加语句:#include \。也可以在每个文件都需要引入的头文件中加入:#include \。
1.2.3:将specstrings.h所在目录添加到路径中:打开Microsoft Visual C++ 6.0 ,选择“Tools->Options”菜单项,切换到”Directories”选项卡,Directories下添加目录” C:\\WINDDK\\7600.16385.1\\INC\\API” 1.3、解决方法2:
找到出错文件的头文件,添加'__in'等空定义,示例语句如下: #define __bcount(size) #define __bcount_opt(size) #define __deref_bcount(size) #define __deref_bcount_opt(size) #define __deref_ecount(size) #define __deref_ecount_opt(size) #define __deref_in
#define __deref_in_bcount(size) #define __deref_in_bcount_opt(size) #define __deref_in_ecount(size) #define __deref_in_ecount_opt(size) #define __deref_in_opt #define __deref_inout
#define __deref_inout_bcount(size) #define __deref_inout_bcount_full(size) #define __deref_inout_bcount_full_opt(size) #define __deref_inout_bcount_opt(size) #define __deref_inout_bcount_part(size,length) #define __deref_inout_bcount_part_opt(size,length) #define __deref_inout_ecount(size) #define __deref_inout_ecount_full(size) #define __deref_inout_ecount_full_opt(size) #define __deref_inout_ecount_opt(size) #define __deref_inout_ecount_part(size,length) #define __deref_inout_ecount_part_opt(size,length) #define __deref_inout_opt #define __deref_opt_bcount(size)
#define __deref_opt_bcount_opt(size) #define __deref_opt_ecount(size) #define __deref_opt_ecount_opt(size) #define __deref_opt_in
#define __deref_opt_in_bcount(size) #define __deref_opt_in_bcount_opt(size) #define __deref_opt_in_ecount(size) #define __deref_opt_in_ecount_opt(size) #define __deref_opt_in_opt #define __deref_opt_inout
#define __deref_opt_inout_bcount(size) #define __deref_opt_inout_bcount_full(size) #define __deref_opt_inout_bcount_full_opt(size) #define __deref_opt_inout_bcount_opt(size) #define __deref_opt_inout_bcount_part(size,length) #define __deref_opt_inout_bcount_part_opt(size,length) #define __deref_opt_inout_ecount(size) #define __deref_opt_inout_ecount_full(size) #define __deref_opt_inout_ecount_full_opt(size) #define __deref_opt_inout_ecount_opt(size) #define __deref_opt_inout_ecount_part(size,length) #define __deref_opt_inout_ecount_part_opt(size,length) #define __deref_opt_inout_opt #define __deref_opt_out
#define __deref_opt_out_bcount(size) #define __deref_opt_out_bcount_full(size) #define __deref_opt_out_bcount_full_opt(size) #define __deref_opt_out_bcount_opt(size) #define __deref_opt_out_bcount_part(size,length) #define __deref_opt_out_bcount_part_opt(size,length) #define __deref_opt_out_ecount(size) #define __deref_opt_out_ecount_full(size)