WEB开发网
开发学院软件开发C++ BHO的一点心得 阅读

BHO的一点心得

 2010-12-03 07:16:15 来源:WEB开发网   
核心提示:今天受机房老杨启发,决定写一个拦截WebQQ的浏览器BHO插件(客户端QQ已经被我们用映像劫持搞定了),BHO的一点心得,于是在网上找了些资料,没想到的是, 生成DLL是成功了,但众所周知,BHO居然要用到COM,哇

今天受机房老杨启发,决定写一个拦截WebQQ的浏览器BHO插件(客户端QQ已经被我们用映像劫持搞定了),于是在网上找了些资料,没想到的是,BHO居然要用到COM,哇,COM啊,看到这个字眼我浑身发抖,这是微软最牛X的发明,这东西是出了名的难学啊,况且我还一窍不通,没办法,最后只有硬上了。 跟着牛人们提供的例子,我一步一步写完了代码,在第一次编译的时候,出现了下面的问题: --------------------Configuration: NoWebQQ - Win32 Release MinDependency-------------------- Compiling... WebQQ.cpp J:\temp\program\NoWebQQ\WebQQ.cpp(46) : error C2065: 'DISPID_BEFORENAVIGATE2' : undeclared identifier J:\temp\program\NoWebQQ\WebQQ.cpp(46) : error C2051: case expression not constant J:\temp\program\NoWebQQ\WebQQ.cpp(77) : error C2065: 'DISPID_ONQUIT' : undeclared identifier J:\temp\program\NoWebQQ\WebQQ.cpp(77) : error C2051: case expression not constant J:\temp\program\NoWebQQ\WebQQ.cpp(80) : warning C4060: switch statement contains no 'case' or 'default' labels 执行 cl.exe 时出错. NoWebQQ.dll - 1 error(s), 0 warning(s) 一看到 undeclared identifier 这个字眼,我第一反应就是缺少头文件,先在百度上找,没找到类似问题,后来又在CSDN发帖,没人张我,无赖之下只有手工到VC的Include文件夹下去找了,最后终于被我找到了,原来缺少的是EXDISPID.H这个头文件,加上之后,问题解决。 脸上淫荡的笑容都还没展开,第二个问题又接踵而来,错误信息如下: --------------------Configuration: NoWebQQ - Win32 Release MinDependency-------------------- Compiling... WebQQ.cpp J:\temp\program\NoWebQQ\WebQQ.cpp(56) : error C2065: '_lpw' : undeclared identifier J:\temp\program\NoWebQQ\WebQQ.cpp(56) : error C2440: '=' : cannot convert from 'unsigned short *' to 'int' This conversion requires a reinterpret_cast, a C-style cast or function-style cast J:\temp\program\NoWebQQ\WebQQ.cpp(56) : error C2065: '_convert' : undeclared identifier 执行 cl.exe 时出错. NoWebQQ.dll - 1 error(s), 0 warning(s) 看到这一幕,我傻眼了,这是啥啊?我深知依我现在的水平是无法解决的,于是老规矩,先百度。没想到网络上已经有大佬发过帖了,点击进去,内容如下: 楼主: error C2065: '_lpw ' : undeclared identifier VC6编译ATL工程时的错误(与W2A,W2T有关), 谁帮忙解决一下。 谢谢 一楼: USES_CONVERSION; A2W(); 二楼: 你一定忘了用USES_CONVERSION 三楼: 忘了加: 调用X2X的宏的函数,要在调用前增加这个宏 USES_CONVERSION; 四楼: 具体位置呢?在setting中加会 warning C4005: 'USES_CONVERSION ' : macro redefinition 五楼: 就加在A2W();的上一行 虽然不知道为什么会出错,但是在出错那句代码的上一句加上USES_CONVERSION问题确实解决了,好吧,先这样吧 。 生成DLL是成功了,但众所周知,把BHO安装到IE中也是个技术活,接下来要做的就是祈祷~~~

Tags:BHO 心得

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接