PCman 板


LINE

很抱歉我可能要说一下,PCMan 2004 Pro对於Web的功能不会有多少改良 底下我做一些说明,希望大家一定要抽空阅读一下罗 使用IE内嵌的程式设计方式和一般视窗程式相当不同,PCMan 2003 Pro 是使用MFC包装过的Component,实际上没有这个现成的元件,我是写不出来的 但说他现成,他其实封装的很原始,只有基本功能而已,其他东西还得自己来 不要说是我,就连有五个人一起写的KKman也是用MFC包好现成的CHtmlView 我不是,我是用VC++的功能,用MFC包装更底层的ActiveX Control 那是VC++直接引用ActiveX元件,然後产生对应的CWebBrowser2元件,很难用 但这不是重点,重点是IE相关的程式设计牵涉甚广,就连有多年经验的人 也不见得可以深究其中细节,要写IE相关的程式不是只要C++,VC++,MFC等视窗程式经验 要动到稍微进阶的功能的话,就要从头学COM (compenent object model) 他不是程式语言,只是一种微软定义的介面,用各种语言都可以写,在VB里最简单, Delphi也有不错的支援,至於VC++...就要玩硬干的,或是ATL会比较方便, 但那又完全是另一套新的东西...@@ 尤其要使用IE的东西,文件相当缺乏 大家一定不知道,但实际上连网页内寻找的功能,微软都没开放出来, 那为什麽各家使用IE内嵌的软体都可支援? 你们可知道这是官方文件没记载的东西? 当初在网路上找了好久好久好久,最後才找到一段英文的 undocumented command 还要自己额外定义某个常数,这才把它给支援出来,我写这程式,VC++提供的东西 包括文件根本就不够用,查遍网路就是没有资料,我又没学过COM COM是个很诡异的技术,是跨语言甚至理论上可跨平台的概念,以各种元件封装 艰涩难懂,很不人性化,整个IE,还有Windows shell都是用COM构成的, 没有坚强的COM/OLE底子,根本不可能写这类程式,何况还要不断阅读"丰富"的文件 重点是还不一定找的到资料,COM里面没有在C++熟析的"物件指标",一切都是"介面" 每要用一个小东西,就要QueryInterface,然後取得虚拟函数介面指标, 接下来又是一场恶梦,混战之後还要记得Release刚取得的指标,否则资源会没释放 整个的COM和我们一般人熟析的程式设计方式完完全全的不同,更是复杂难懂 而 IWebBrowser2 只是一个操作浏览器的介面,要操作文件内容或是视窗,就要 在Query其他interface,一堆莫名奇妙的东西,我贴一行程式码上来你们就了解 我干麻这样抱怨,真是有够丑,每次用某个interface都要先query还要检查有 没有支援该介面,如果有才继续,最後还要记得释放,问题是搞不清楚这些在干麻 IHTMLDocument2* pHTMLDoc=NULL; if( SUCCEEDED(lpd->QueryInterface(IID_IHTMLDocument2,(void**)&pHYMLDoc)) ) { IHTMLWindow2* pWnd=NULL; if( SUCCEEDED( pHTMLDoc->get_parentWindow(&pWnd)) ) pWnd->Release(); pHTMLDoc->Release(); } 看起来是C++语法,骨子里用的东西全都是COM的架构,去看相关文件一看当场傻眼 难怪KKman也选择用MFC包装好的现成元件...直接去写一堆这种东西会爆炸的? 我看了好久的文件还是找不出很多东西到底要怎麽做,只能说MyIE那些软体作者是神 我看过MyIE的code,其实真的写的很丑...进阶功能全部都是用COM, 一般视窗的部份我都看的懂也会做,但是牵涉到浏览器的部份就看不懂 这想必也是为何KKman只能支援到基本Web功能,因为他跟我一样是用现成元件去写 那为何GreenBrowser这麽强? 大家可知道他不是一个人写的? 他源自於MyIE 中间经过太多人的陆续修改,大陆人真的好强! 传闻MyIE原作者因法轮功被捕死亡 其中一些很方便的Web功能,我还真的查不到它是怎麽做到的,相关文件太多 很多东西却是完全找不着,像MyIE程式码当中,网页内容寻找的部份,很巧 跟我在网路上最後找的英文文件给的那一段,完全一模一样,连注解,变数名都相同 不用说也知道,是直接复制贴上的,这种东西,没有参考资料根本不可能有人会写 我猜写KK人的作者搞不好跟我找到的也是同一份文件 :) 或是它也参考了MyIE? 总之我要说的是,之所以只支援很阳春的Web功能,实在不是不愿意做,而是... 那真的不是人干的,你们哪位要写留给你们写吧,我要吐血了  ╮(﹀_﹀")╭ 找不到相关文件真是无从写起,你们相信吗?用了MFC提供的Event Sink包装之後 居然引发Multithreading相关问题,这些微软的文件上根本半个字都没写, 是我一再无故当机却找不到bug,花了无数时间debug才发现的,别太苛求了吧! 其实我真的也只是初学者而已...会的东西不过基本视窗程式设计而已 很多东西也一直在摸索,并不是像很多人以为的高手,这点是一定要澄清的 眼看假期又要用完,PCMan 2004还是难产啊...所以有人再问我浏览器功能的话 我的回答,就请看下一篇文章.... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.129.59.3 ※ 编辑: HZYSoft 来自: 140.129.59.3 (01/30 04:20)
1F:→ HanJyi:作者好辛苦..这篇要m起来,走open source 推 140.123.181.92 01/30
2F:→ kjol:ms暗杠太多"独门"程式码 推 218.164.35.157 01/30
3F:→ advicer:MSDN很好用... 推 140.123.254.21 01/30
4F:→ HZYSoft:MSDN是好用,但有些东西确实也没有... 推 140.129.59.3 01/30







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP