• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Error

            C++博客 首頁 新隨筆 聯系 聚合 管理
              217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

            武漢-Error<errorcpp@qq.com> 16:37:38

            討論一個VC的問題 
            武漢-Error<errorcpp@qq.com> 16:37:51
            夸進程的 WM_DATACOPY
            武漢-Error<errorcpp@qq.com> 16:38:00
            的內存管理
            武漢-Error<errorcpp@qq.com> 16:38:07
            誰先發言?


            南昌-貝貝(1125591)  16:38:29
            進程內沒必要用這個
            湖南-VC(215735031)  16:39:03
            不知道把clicpsrv服務關掉,這個還會不會調用成功
            武漢-Error<errorcpp@qq.com>  16:39:03
             那內存是那個牛管理的
            南昌-貝貝(1125591)  16:39:20
            共享內存啊
            武漢-不語(86990476)  16:39:22

            武漢-Error<errorcpp@qq.com>  16:39:30
            如果偶沒記錯
            武漢-Error<errorcpp@qq.com>  16:39:54
            網狐的代碼 是 在把棧上的一塊內存的地址
            武漢-Error<errorcpp@qq.com>  16:40:08
            當作copydata結構體的指針域
            湖南-VC(215735031)  16:40:16
            error再搞網狐?
            武漢-Error<errorcpp@qq.com>  16:40:17
            sendmessage
            武漢-Error<errorcpp@qq.com>  16:40:19
            出去的
            武漢-Error<errorcpp@qq.com>  16:40:31
            這樣就說明
            武漢-Error<errorcpp@qq.com>  16:40:43
            系統 應該接管了這塊內存
            武漢-Error<errorcpp@qq.com>  16:40:55
            誰知道這其中是怎么管理的
            湖南-VC(215735031)  16:41:04

            武漢-Error<errorcpp@qq.com>  16:41:07
            是的,看了好久了。
            最近開始看客戶端了
            武漢-Error<errorcpp@qq.com>  16:41:34
             其實我只關系生命周期
            武漢-Error<errorcpp@qq.com>  16:41:46
            無所不能的貝貝神
            武漢-Error<errorcpp@qq.com>  16:41:48

            南昌-貝貝(1125591)  16:42:13
            就是共享內存呀
            中山-瘋子(510776002)  16:42:03
            貝神學的太快了
            武漢-Error<errorcpp@qq.com>  16:42:42
            嗯 假設他就是共享內存
            那是誰申請 誰釋放的呢?
            南昌-貝貝(1125591)  16:42:57
            發送者申請,發送者釋放
            武漢-Error<errorcpp@qq.com>  16:43:56
            嗯,假設是發送至申請 發送者釋放
            那人家那里放的是一個指針地址,接受的時候咋成了共享內存了

            偶去看看接收代碼
            南昌-貝貝(1125591)  16:44:57
            進程使用的內存都是由系統在物理存儲里面調撥的....然后映射到這個進程的...系統多映射一個進程,有什么不可以的咧?
            中山-瘋子(510776002)  16:44:55
            仙路盡頭誰為峰,一見貝神道成空
            武漢-Error<errorcpp@qq.com>  16:45:57
            那就是說,發送的結構體 和 接受的結構體 的那個指針域
            武漢-Error<errorcpp@qq.com>  16:46:06
            可能不是一個值
            武漢-Error<errorcpp@qq.com>  16:46:09
            對吧?
            南昌-貝貝(1125591)  16:46:18
            什么東東
            南昌-貝貝(1125591)  16:46:20
            聽不懂
            湖南-VC(215735031)  16:46:43
            A進程里發的數據的內存地址 跟B接收的內存地址
            南昌-貝貝(1125591)  16:46:52
            發送的時候把這個結構體中指針指向的內存塊(指定大小),映射到目標進程 
            中山-瘋子(510776002)  16:47:10
            對了,問下如何追蹤到WM_COPYDATA的處理函數,這個問題難了我好久,一直沒有解決
            武漢-Error<errorcpp@qq.com>  16:48:11
            嗯,貝貝說的原理。偶懂了,偶現在想確認下這個現象,,,

            比較懶,沒寫測試就直接問了,,,
            見諒,,,


            武漢-Error<errorcpp@qq.com>  16:48:20
            typedef struct tagCOPYDATASTRUCT { 
                ULONG_PTR dwData; 
                DWORD     cbData; 
                PVOID     lpData; 
            } COPYDATASTRUCT, *PCOPYDATASTRUCT; 


            這個結構體的   dwData
            中山-瘋子(510776002)  16:48:21
            應為是在另一個進程中,不知怎么辦
            湖南-VC(215735031)  16:48:41
            恩,你測試的時候順便測試下我那個疑問哈
            南昌-貝貝(1125591)  16:48:47
            dwData 就是傳一個數字
            武漢-Error<errorcpp@qq.com>  16:48:46
            在發送進程的值  和 在另一進程中 收到的值
            武漢-Error<errorcpp@qq.com>  16:48:52
            是不相同的
            武漢-Error<errorcpp@qq.com>  16:49:13
            湖南 是和我考慮的一個問題吧?
            湖南-VC(215735031)  16:49:28
            是的,
            湖南-VC(215735031)  16:49:42
            不過你觀察的是它們通信的過程
            武漢-Error<errorcpp@qq.com>  16:49:51
            嗯,我看的是現象
            湖南-VC(215735031)  16:50:00
            我還順帶觀察下這個過程是不是由剪貼板服務維護的
            中山-瘋子(510776002)  16:50:01
            就是另一個進程處理WM_COPYDATA的函數
            武漢-Error<errorcpp@qq.com>  16:50:21
            還有資源釋放的過程
            湖南-VC(215735031)  16:50:33
            如果這個服務關掉了,還有沒有。
            武漢-Error<errorcpp@qq.com>  16:50:38
            按照貝貝說的來理解,我就懂了一點了
            湖南-VC(215735031)  16:51:15
            說到底,還是WINDOWS的內存劃分不清晰啊。
            湖南-VC(215735031)  16:51:27
            共享內存,內存地址是多少
            湖南-VC(215735031)  16:51:57
            kernel32.dll 類似這種東東,系統都把它們映射到進程的 0x800以上
            武漢-Error<errorcpp@qq.com>  16:52:06
            send的時候OS只是映射了一下
            當被映射的內存釋放以后,自然數據就失效了

            不過這還有一個沒解決的問題,數據失效了,映射又由誰清理
            湖南-VC(215735031)  16:52:23
            按貝貝說的說法,剪貼板內容也應該映射到某個地址。
            南昌-貝貝(1125591)  16:52:24
            kernel32.dll 類似這種東東,系統都把它們映射到進程的 0x800以上
            誰說的
            湖南-VC(215735031)  16:52:36
            默認情況
            南昌-貝貝(1125591)  16:52:50
            0x80000000 以上就錯
            武漢-Error<errorcpp@qq.com>  16:52:56
            敢在貝爺面前玩小聰明
            南昌-貝貝(1125591)  16:53:07
            剪貼版不一定是共享內存
            武漢-Error<errorcpp@qq.com>  16:53:22
            貝貝 偶的問題還沒回答完畢呢

            映射我理解了
            湖南-VC(215735031)  16:53:32
            你理解什么了。
            武漢-Error<errorcpp@qq.com>  16:53:36
            但是這個映射最終還是要被 取消

            這一部咋弄
            湖南-VC(215735031)  16:53:47
            貝貝剛都說了, 
            武漢-Error<errorcpp@qq.com>  16:54:03
            就是OS沒有拷貝send的數據,只是把兩個進程的地址映射了下
            武漢-Error<errorcpp@qq.com>  16:54:26
            偶不關系那個過程,我值關注數據傳遞的結果
            湖南-VC(215735031)  16:54:36
            每一個進程都可以訪問剪貼板的數據,
            湖南-VC(215735031)  16:54:50
            你A進程發送的數據肯定也是進了剪貼板的
            武漢-Error<errorcpp@qq.com>  16:55:02
            現在的結果:
            1.沒有傳遞
            2.是地址映射
            3.系統完成的映射
            4.我不知道神馬時候映射被取消
            湖南-VC(215735031)  16:55:32
            大哥,我們的疑問其實一樣
            武漢-Error<errorcpp@qq.com>  16:55:56
            否則我大量 發送DATACOPY 這樣兩個進程的數據不是全部被映射了,,,

            所以,偶要知道這個映射啥時候取消
            湖南-VC(215735031)  16:56:15

            湖南-VC(215735031)  16:56:22
            A B 是進程 C是剪貼板
            南昌-貝貝(1125591)  16:56:31
            我也不知道怎么解釋,可能我說的不準確,是因為我要表達的是

            如果你在記事本中復制一個字符串那是共享內存(服務里面的)
            如果你的程序會接收處理剪貼版消息,那會有另一種行為...大多數人都應該見過,在WORD中復制表格.在詞本中粘貼是純文字 ,在QQ上粘貼是圖像
            南昌-貝貝(1125591)  16:56:41
            如果單純共享一次.那怎么做得到
            湖南-VC(215735031)  16:57:17
            我記得在VC中使用WM_COPYDATA 要顯示的指定
            武漢-Error<errorcpp@qq.com>  16:57:21
             還是沒有解釋 4.映射(共享)啥時候取消嘛
            湖南-VC(215735031)  16:57:45
            這可能說明了, 
            南昌-貝貝(1125591)  16:57:47
            我知道水神主要的疑問就是 WM_COPYDATA 何時取消映射
              只需要回答你(PostMessage->WM_COPYDATA是永不會成功的)
            武漢-Error<errorcpp@qq.com>  16:58:20
            send返回的時候么

            列個是同步的?
            武漢-Error<errorcpp@qq.com>  16:58:29
            ok我的問題差不多解決了
            湖南-VC(215735031)  16:58:31
            估計每個進程訪問到的剪貼板內存都是系統分配的一個”映像“
            武漢-Error<errorcpp@qq.com>  16:58:52
            VC的 和 ole對象神馬相關 還有com模型,,,這個話題老大了,,,
            南昌-貝貝(1125591)  16:59:13
            COM我也是笨蛋,  太久遠了
            湖南-VC(215735031)  16:59:49
            我的疑問是,系統給每個進程都留了一個后門,可以訪問一塊共同的內存?
            武漢-Error<errorcpp@qq.com>  17:00:04
            ole模型好像是這樣
            湖南-VC(215735031)  17:00:23
            還是進程需要訪問“剪貼板”的時候,顯示的給它映射一個
            中山-瘋子(510776002)  17:00:34
            追蹤WM_COPYDATA
            武漢-Error<errorcpp@qq.com>  17:01:05
             中山-瘋子(510776002)  17:00:34
            追蹤WM_COPYDATA

            自己打log
            湖南-VC(215735031)  17:01:11
            如果是后門,水神你那個A發起,B收到的就是同一個地址才對
            武漢-Error<errorcpp@qq.com>  17:01:13
            或者用windbg
            武漢-Error<errorcpp@qq.com>  17:01:26
            是映射
            武漢-Error<errorcpp@qq.com>  17:01:31
            不同的進程
            武漢-Error<errorcpp@qq.com>  17:01:39
            地址空間不同
            湖南-VC(215735031)  17:01:43
            如果是誰用到,給誰映射,那A發起的被映射到系統,再被映射到B進程
            武漢-Error<errorcpp@qq.com>  17:01:49
            是的
            武漢-Error<errorcpp@qq.com>  17:01:54
            誰send
            武漢-Error<errorcpp@qq.com>  17:01:59
            歲映射
            湖南-VC(215735031)  17:02:18
            我現在不好寫測試, 你A發起的, 剪貼板能看到不
            武漢-Error<errorcpp@qq.com>  17:02:34
            不然生命周期不好控制

            以上是貝神語錄心得

            我現在也沒環境測試,,,
            湖南-VC(215735031) 17:03:04 
            我晚上測試下
            湖南-VC(215735031) 17:03:16 
            如果第三方剪貼板能讀到這部分數據的話,
            武漢-Error<errorcpp@qq.com> 17:03:39 
            映射是系統控制的,這個不好說
            吉林-小伙? 17:03:47 
            不可能是剪貼板的
            湖南-VC(215735031) 17:04:05 
            小伙想說SendMesaage指定了HWND?
            吉林-小伙? 17:04:07 
            進程間通信 有管道 有消息 有剪貼板 有socket 等等
            吉林-小伙? 17:04:23 
            都把消息和剪貼板分開來說了
            吉林-小伙? 17:04:48 
            還有 用SendMessage WM_COPYDATA 數據量大會死鎖
            吉林-小伙? 17:05:59 
            WM_COPYDATA就是內存映射實現的
            中山-瘋子(510776002) 17:06:52 
            進程通信比較好的話就是本機網絡通信127.0.0.1
            成都-祁愿(130048) 17:07:23 
            命名管道。
            武漢-Error<errorcpp@qq.com> 17:07:36 
            這樣有開銷
            武漢-Error<errorcpp@qq.com> 17:07:44 
            映射是開銷最小的
            湖南-VC(215735031) 17:08:06 
            WM_COPYDATA要指定目標HWND
            湖南-VC(215735031) 17:08:22 
            跟所有進程都能訪問到的剪貼板方式不一樣
            中山-瘋子(510776002) 17:08:23 
            大數據就在磁盤建立個文件,并通過WM_COPYDATA通知對方
            南昌-貝貝(1125591) 17:08:54 
            管道的內部實現就是共享內存
            南昌-貝貝(1125591) 17:09:08 
            本機管道
            武漢-Error<errorcpp@qq.com> 17:09:27 
            嗯 本地回環soket呢?
            武漢-Error<errorcpp@qq.com> 17:09:35 

            南昌-貝貝(1125591) 17:09:51 
            回環好像也是共享內存
            南昌-貝貝(1125591) 17:10:03 
            回環Socket 連TDI層好像都沒到
            吉林-小伙? 17:10:15 
            TDI?
            南昌-貝貝(1125591) 17:10:37 
            NDIS層一定沒到
            南昌-貝貝(1125591) 17:10:46 
            TDI層不記得...
            湖南-VC(215735031)  17:11:19
            貝貝,Kner.dll不是映射800地址,那是哪
            南昌-貝貝(1125591)  17:11:29
            你是說800?
            湖南-VC(215735031)  17:11:35
            XP是7c8以上
            南昌-貝貝(1125591)  17:11:49
            我以為你是說 0x80000000
            湖南-VC(215735031)  17:11:52
            我也說的大概,大概那個段
            武漢-Error<errorcpp@qq.com>  17:12:01


            今天的會議我已經做了記錄
            武漢-Error<errorcpp@qq.com>  17:12:07
            并且發布到網絡上了
            吉林-小伙 (694129464)  17:12:09
            元謀人啊 TDI是什么的縮寫???
            湖南-VC(215735031)  17:12:14
            那剛這個進程間的映射話,一般會映射到哪個段
            武漢-Error<errorcpp@qq.com>  17:12:14
            大家出名了以后不要意外
            吉林-小伙 (694129464)  17:12:19
            貝貝 TDI是什么的縮寫啊
            武漢-Error<errorcpp@qq.com>  17:12:21
            可恥的準備下班了
            湖南-VC(215735031)  17:12:27
            .data ?
            成都-祁愿(130048)  17:12:45
            Trandport Driver Interface
            南昌-貝貝(1125591)  17:12:50
            Transport Driver
            南昌-貝貝(1125591)  17:12:54
            Interface
            武漢-Error<errorcpp@qq.com>  17:13:06
            傳輸層
            南昌-貝貝(1125591)  17:13:10
            網絡傳輸層接口
            吉林-小伙 (694129464)  17:13:14

            南昌-貝貝(1125591)  17:13:56
            Vista以后不建議關注它.本來是要取消它的.后來為兼容性沒取消
            武漢-Error<errorcpp@qq.com>  17:14:10
            傳輸層還是要的吧

            啥?
            映射還是 copydata
            吉林-小伙 (694129464)  17:14:14
            以后搞驅動不行啦
            吉林-小伙 (694129464)  17:14:26
            麻痹的 還得改成調試模式才能加載
            吉林-小伙 (694129464)  17:14:36
            要不就得簽名
            吉林-小伙 (694129464)  17:14:41

            武漢-Error<errorcpp@qq.com>  17:15:20
            物理 鏈路 網絡 傳輸 會話 應用
            武漢-Error<errorcpp@qq.com>  17:15:25
            還差個神馬?
            南昌-貝貝(1125591)  17:15:38
            Vista 以后的操作系統微軟提供了 NDIS Filter 接口.嘿嘿.過濾就方便了
            吉林-小伙 (694129464)  17:15:38
            表示
            吉林-小伙 (694129464)  17:15:44

            武漢-Error<errorcpp@qq.com>  17:15:57
            物理 鏈路 網絡 傳輸 會話 表示 應用
            武漢-Error<errorcpp@qq.com>  17:16:01
            嗯 這樣就對了
            吉林-小伙 (694129464)  17:16:16

            湖南-VC(215735031)  17:16:18
            大哥 你搞科研啊
            武漢-Error<errorcpp@qq.com>  17:16:24
            這個東西還是有用的
            南昌-貝貝(1125591)  17:16:32
            嘿嘿.這幾個詞,我面試別人的時候,還考別人呢...
               (其實自己也答不來)
            武漢-Error<errorcpp@qq.com>  17:16:31
            比如 本地回環
            武漢-Error<errorcpp@qq.com>  17:16:42
            只有端口號其作用
            湖南-VC(215735031)  17:16:54
            貌似現在WINDOWS通用SOCKET編程簡化了好幾層
            武漢-Error<errorcpp@qq.com>  17:16:57
            端口號 主要是在應用層
            武漢-Error<errorcpp@qq.com>  17:17:11
            ip地址是網絡和傳輸層
            武漢-Error<errorcpp@qq.com>  17:17:21
            學通了,還是有用的
            武漢-不語(86990476)  17:17:22
            有很多人就死在這個問題尚
            武漢-不語(86990476)  17:17:24

            武漢-Error<errorcpp@qq.com>  17:17:24
            不是完全沒用
            吉林-小伙 (694129464)  17:24:49
            就沒有我的 哈哈
            吉林-小伙 (694129464)  17:24:58
            我的是問號 太NB了
            posted on 2011-12-07 17:11 Enic 閱讀(1028) 評論(0)  編輯 收藏 引用 所屬分類: VC路上的坑
            国产精品一久久香蕉国产线看观看| 亚洲国产精品一区二区久久hs| 无码精品久久久天天影视| 国产精自产拍久久久久久蜜| 久久中文字幕无码专区| 久久久久久久久久久精品尤物| 久久精品成人欧美大片| 伊人久久一区二区三区无码| 久久亚洲精品成人AV| 国产香蕉97碰碰久久人人| 亚洲欧美久久久久9999| 久久久噜噜噜久久中文字幕色伊伊| 久久国产精品国语对白| 久久久久99精品成人片三人毛片| 久久综合久久美利坚合众国| 国内精品久久人妻互换| 久久精品国产亚洲av日韩| 久久亚洲AV无码西西人体| 久久久精品久久久久特色影视| 久久性精品| 久久精品国产99国产精品导航| 久久久久亚洲av无码专区喷水| 精品久久久久久无码专区不卡| 亚洲国产成人久久精品动漫| 精品伊人久久大线蕉色首页| 久久久久久国产精品无码超碰| 精品久久久久久综合日本| 色欲久久久天天天综合网精品| 久久99精品国产麻豆宅宅 | 久久久国产视频| 91超碰碰碰碰久久久久久综合| 久久涩综合| 精品久久久无码人妻中文字幕豆芽| 久久99热狠狠色精品一区| 久久天天躁狠狠躁夜夜2020| 久久亚洲精品成人av无码网站| 香蕉久久一区二区不卡无毒影院| 久久人做人爽一区二区三区| 久久久亚洲欧洲日产国码二区| 久久伊人五月天论坛| 丁香五月网久久综合|