日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

VC6下使用WebLink控件

發布時間:2023/12/10 c/c++ 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC6下使用WebLink控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 這是今年67號我的一篇日志,好像還有些參考價值,謄到blog上來吧。


? 最終我在VC6下面搞定了WebLink,與以往一樣,論壇和MSDN是我最大的幫手。在ESRI官方論壇那可憐的四五個關于VC6+WebLink的帖子中,我找到了困擾我多天的問題的答案。

? 在做現在這個影像數據服務項目的整個過程中,我一共在三個平臺下面使用過WebLink控件,從VB6.net,再回到VC6,所謂由儉入奢易,由奢入儉難,這次真的是體會到了。WebLink響應函數OnRequest的兩個參數argumentsvalues分別是http請求字符串中的鍵名集合與鍵值集合,都是MoStrings類型的,但在VB6.net中,它們都是以object示人,使用它們就像使用MoStrings一樣。

? 然而到了VC6中,情況變了,VC無情的撕掉了object的外衣,赤裸裸的將COMLPDISPATCH露給了我。本人看過一點《COM本質論》,對IUnkown、IDispatch等心存恐懼,因此看到這兩個IDispatch *類型的參數argumentsvalues感到無從下手。

? 在MSDNCSDN上苦苦尋覓之后,我發現應該使用arguments->GetIDsOfNamesarguments->Invoke來調用arguments的屬性和方法。實驗中也確實通過這種方法獲得了Count屬性的值。至此我以為問題解決了,但后面卻發現,暫且不說GetIDsOfNamesInvoke那冗長得要分成若干行才能寫完的參數(而且還不能全搞明白它們的含義),就是想調用arguments的一個Find方法,就復雜得讓人吐血,如果再想使用運算符,比如[ ]索引,那就更恐怖了。本人技術拙劣,也不知道是不是COM組件在VC6下面都是這種用法。

? 于是思路就此中斷,這次CSDN也沒能再顯神威。但ESRI的論壇上還是有點蛛絲馬跡的,都是些上個世紀的帖子,其中就有我遇到的這個問題,solution如下:

? 通過添加MO而使MoStrings可用,而MoStrings中就有以LPDISPATCH為參數的構造函數。這樣LPDISPATCH類型的argumentsvalues就可以順理成章的轉成MoStrings了,然后就可以像正常情況一樣直接使用其一切屬性和方法了。至此,才算是真正解決了這個問題。

??? COM雖已是過氣的技術了,但它仍很重要,技術的發展都是循序漸進的。Don Box在《Essential .NET》中第一章就說“CLR is a better COM”,一針見血。

轉載于:https://www.cnblogs.com/rib06/archive/2005/11/16/277309.html

總結

以上是生活随笔為你收集整理的VC6下使用WebLink控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。