討論區快速選單
知識庫快速選單
討論區最近新進100則主題 程式設計俱樂部Facebook粉絲團 全方位AWS解決方案完整培訓
[ 回上頁 ] [ 討論區發言規則 ]
HRESULT 對應 VT_EMPTY
更改我的閱讀文章字型大小
作者 : kuolung(kuolung)
[ 貼文 151 | 人氣 1414 | 評價 130 | 評價/貼文 0.86 | 送出評價 39 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/3/2 下午 02:58:38
請教各位大大,
我使用 COM model 來收 event 時發現一個問題,

原始宣告

    HRESULT OnConnection (
     long nKind,
     long nCode );

但是我在

DISPATCH 中的宣告卻是

DISP_FUNCTION_ID(SKQuoteEvent, "OnConnection", 1, OnConnection, VT_EMPTY, VTS_I4 VTS_I4)

其中 VT_EMPTY 對應到 HRESULT 好像不對,因為 HRESULT 為 long 形態
依然可以正常收到 event

為什麼不是

DISP_FUNCTION_ID(SKQuoteEvent, "OnConnection", 1, OnConnection, VT_I4, VTS_I4 VTS_I4)

用 VT_I4 對 HRESULT

另外一個問題是,如果我用 64bit 編譯,

long 是 8byte 為什麼 用 VTS_I4 也是可以的
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4468 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人kuolung註記此篇回應為很有道理 2017/3/2 下午 04:57:32
https://msdn.microsoft.com/en-us/library/087e0w00.aspx
https://msdn.microsoft.com/en-us/library/cc235116.aspx


http://opensourceforu.com/2016/06/quick-look-integer-promotion-c/
作者 : kuolung(kuolung)
[ 貼文 151 | 人氣 1414 | 評價 130 | 評價/貼文 0.86 | 送出評價 39 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/3/3 上午 08:53:41
謝謝大大的指導,
說明一下,我的了解,看是否正確

好像 VT_... VTS_... 的

for

Defines an OLE automation function in a dispatch map.

是沒有 32bit / 64bit 之分

對於第一個問題,

ozzy (ozzy123) 大大所貼的文章,好像都沒有談到

是否可以再給多一點的提示
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4468 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2017/3/3 上午 11:31:07
> HRESULT OnConnection (
> long nKind,
> long nCode );
>
>但是我在
>DISPATCH 中的宣告卻是
>
>DISP_FUNCTION_ID(SKQuoteEvent, 'OnConnection', 1, OnConnection, VT_EMPTY, VTS_I4 VTS_I4)
>
>其中 VT_EMPTY 對應到 HRESULT 好像不對,因為 HRESULT 為 long 形態
>依然可以正常收到 event
>
>為什麼不是
>
>DISP_FUNCTION_ID(SKQuoteEvent, 'OnConnection', 1, OnConnection, VT_I4, VTS_I4 VTS_I4)
>
>用 VT_I4 對 HRESULT
>
https://msdn.microsoft.com/zh-tw/library/windows/desktop/aa378137(v=vs.85).aspx
please this article that describes those values .

https://en.wikipedia.org/wiki/HRESULT wiki explains it
https://msdn.microsoft.com/zh-tw/library/cc237865.aspx
https://msdn.microsoft.com/zh-tw/library/ms256088(v=vs.120).aspx - VT_EMPTY type : integer
https://msdn.microsoft.com/zh-tw/library/s3f49ktz.aspx vS 2015 supported elementary data type
https://en.wikipedia.org/wiki/Type_conversion - type promotion/conversion

basically, it is a type promotion .


  


 板主 : 青衫 , Raymond
 > Visual C++ - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Visual C++ - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Visual C++
1 青衫 11070 
2 Raymond 10090 
3 Clier 7630 
4 小約翰 2500 
5 Cog 2030 
6 coco 1870 
7 aming 1410 
8 牧童哥 1400 
9 r2109 1380 
10 Akira 1350 
Visual C++
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.140625