青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

共4頁: 1 2 3 4 
re: HOOK技術的一些簡單總結 Richard Wei 2016-08-19 12:23
@陳利敏
可以用先用API Monitor 或者WinDbg的API斷點看看對方程序是如何工作的
re: 消息發送雜談 Richard Wei 2016-05-11 12:18
這里有意思的地方在于面對著一個com對象,你居然沒有辦法知道到它究竟實現了多少接口。微軟自己也也意識到了這個問題, 于是WinRT里就有了IInspectable::GetIids, https://msdn.microsoft.com/en-us/library/br205822(v=vs.85).aspx
re: 挖坑,有空填坑 Richard Wei 2016-05-10 16:51
歡迎回來...
re: 如何抓取揚聲器的聲音 Richard Wei 2016-01-05 19:36
@josanna
不行就開線程吧,還不行可以嘗試提高線程的優先級
re: 客戶端技術的一點思考 Richard Wei 2015-12-11 15:35
@游戲狗…
這個需要DUILib庫的開發為每個控件實現IAccessible接口,自動測試再通過這個接口查詢和操作控件, 思路就那樣,手頭現成的Demo也我沒有.
re: 客戶端技術的一點思考 Richard Wei 2015-12-11 14:17
@謝應彪
要點我在這篇文章里都說了 http://m.shnenglu.com/weiym/archive/2014/11/15/208885.html

我們的Windows Client就是基于開源的DUILib的, 有興趣可以試用下 zoom.us
re: 客戶端技術的一點思考 Richard Wei 2015-09-18 21:24
@春秋十二月
是的,計算機技術的變化可以說很快,也可以說很慢。快的方面來說,各種新語言新技術新平臺層出不窮,好像三天兩頭在變;慢的方面來說,數據結構和算法,語言范型,網絡協議,馮諾依曼體系結構等幾十年來都很穩定,練好內功才能以靜制動。
@longjoy
按我上面說的做就可以了支持了,公司內部代碼,外面應該下載不到...
@test
看來確實是歷史原因, 不過對于運行期的程序來說,個人倒是更贊同Windows的做法,忽略內存因素,Windows的UCS2編碼相對于其他平臺的UTF8更統一和高效。
re: 基于WinDbg的內存泄漏分析 Richard Wei 2015-01-12 16:38
@lchen
這個沒啥好方法, 感覺只能通過查看每個堆建立時的堆棧情況來判斷
試了下, 貌似就是這樣的。實在不行就不要Destroy B了, 用Hide B替代吧
re: 面向對象鎖框架的設計與實現 Richard Wei 2014-12-31 14:49
@春秋十二月
理解, 基礎庫大量用模板我也沒反對...
re: 面向對象鎖框架的設計與實現 Richard Wei 2014-12-31 09:23
哈哈, 我現在也比較趨向簡單的設計, 有時間玩模板的奇淫技巧, 還不如花時間解決幾個實際的問題。
曾經思考過C++的編程風格: http://m.shnenglu.com/weiym/archive/2013/04/27/199781.html
@bukebushuo
不知道老弟的界面庫賣的怎么樣了。

DUI支持讀屏我已經做了, 就按我上面說的方法。
實際上QQ的界面庫也是支持讀屏的,有興趣的話可以在win7/win8上嘗試 “控制面板\輕松使用\輕松使用設置中心\啟動講訴人”, 然后在QQ上通過Tab切換控件焦點。
re: 一個高效的內存池實現 Richard Wei 2014-09-23 22:09
@duanyuncanyang
memory pool 本身只負責內存分配,是給對象的operate new 和operate delete調用的,具體參見上面的測試代碼
re: 關于SEH的簡單總結 Richard Wei 2014-09-22 13:18
@cc
本來就是, C++異常只能捕獲軟件異常, 硬件異常(如除零,空指針訪問)用操作系統的SEH捕獲。
re: Windbg實用手冊 Richard Wei 2014-09-16 17:31
有人提到中文中夾雜英文的問題,不多說了,在外企呆過的同學應該都會不自覺地有這個習慣,并且有時候錯誤的中文還不如用原始的英文。
re: HOOK技術的一些簡單總結 Richard Wei 2014-05-27 19:57
@allen
剛才有簡單測試了下, 測試代碼如下:
D3DPRESENT_PARAMETERS ps = {0};
ps.Windowed = TRUE;
ps.SwapEffect = D3DSWAPEFFECT_DISCARD;
ps.BackBufferFormat = D3DFMT_UNKNOWN;

pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL
, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &ps, &g_pD3dDevice);
if(g_pD3dDevice == NULL) break;


LPDIRECT3DDEVICE9 pNewD3dDevice = NULL;
pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL
, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &ps, &pNewD3dDevice);

創建了2個IDirect3DDevice9對象, 然后分別打印它們的虛表指針和內容:

0:000> ?? g_pD3dDevice
struct IDirect3DDevice9 * 0x02815c00
+0x000 __VFN_table : 0x0281899c
0:000> ?? pNewD3dDevice
struct IDirect3DDevice9 * 0x0241bfe0
+0x000 __VFN_table : 0x0241ed7c
0:000> dps 0x0281899c
0281899c 6fe56f19 d3d9!CBaseDevice::QueryInterface
028189a0 6fe56992 d3d9!CBaseDevice::AddRef
028189a4 6fe56969 d3d9!CBaseDevice::Release
028189a8 6fe72587 d3d9!CBaseDevice::TestCooperativeLevel
028189ac 6ff0c6ad d3d9!CBaseDevice::GetAvailableTextureMem
028189b0 6ff49c8f d3d9!CD3DBase::EvictManagedResources
028189b4 6fe6b1c5 d3d9!CBaseDevice::GetDirect3D
028189b8 6fe56ff8 d3d9!CBaseDevice::GetDeviceCaps
028189bc 6fe8d144 d3d9!CBaseDevice::GetDisplayMode
028189c0 6fe7084e d3d9!CBaseDevice::GetCreationParameters
028189c4 6ff0bb74 d3d9!CBaseDevice::SetCursorProperties
028189c8 6ff0c04d d3d9!CBaseDevice::SetCursorPosition
028189cc 6fe8def0 d3d9!CBaseDevice::ShowCursor
028189d0 6fe6e9a0 d3d9!CBaseDevice::CreateAdditionalSwapChain
028189d4 6fe69ac7 d3d9!CBaseDevice::GetSwapChain
028189d8 6fe993ca d3d9!CBaseDevice::GetNumberOfSwapChains
028189dc 6feaf251 d3d9!CBaseDevice::Reset
028189e0 6fe9a064 d3d9!CBaseDevice::Present
028189e4 6feb1418 d3d9!CBaseDevice::GetBackBuffer
028189e8 6fe6bfe9 d3d9!CBaseDevice::GetRasterStatus
028189ec 6ff0c139 d3d9!CBaseDevice::SetDialogBoxMode
028189f0 6ff0c3bf d3d9!CBaseDevice::SetGammaRamp
028189f4 6ff0c4fd d3d9!CBaseDevice::GetGammaRamp
028189f8 6fe85ddb d3d9!CBaseDevice::CreateTexture
028189fc 6ff0ca68 d3d9!CBaseDevice::CreateVolumeTexture
02818a00 6feacb2d d3d9!CBaseDevice::CreateCubeTexture
02818a04 6fe72d69 d3d9!CBaseDevice::CreateVertexBuffer
02818a08 6fe732e6 d3d9!CBaseDevice::CreateIndexBuffer
02818a0c 6fea0127 d3d9!CBaseDevice::CreateRenderTarget
02818a10 6ff0cd88 d3d9!CBaseDevice::CreateDepthStencilSurface
02818a14 6ff0e0e0 d3d9!CBaseDevice::UpdateSurface
02818a18 6fe846ab d3d9!CBaseDevice::UpdateTexture
0:000> dps 0x0241ed7c
0241ed7c 6fe56f19 d3d9!CBaseDevice::QueryInterface
0241ed80 6fe56992 d3d9!CBaseDevice::AddRef
0241ed84 6fe56969 d3d9!CBaseDevice::Release
0241ed88 6fe72587 d3d9!CBaseDevice::TestCooperativeLevel
0241ed8c 6ff0c6ad d3d9!CBaseDevice::GetAvailableTextureMem
0241ed90 6ff49c8f d3d9!CD3DBase::EvictManagedResources
0241ed94 6fe6b1c5 d3d9!CBaseDevice::GetDirect3D
0241ed98 6fe56ff8 d3d9!CBaseDevice::GetDeviceCaps
0241ed9c 6fe8d144 d3d9!CBaseDevice::GetDisplayMode
0241eda0 6fe7084e d3d9!CBaseDevice::GetCreationParameters
0241eda4 6ff0bb74 d3d9!CBaseDevice::SetCursorProperties
0241eda8 6ff0c04d d3d9!CBaseDevice::SetCursorPosition
0241edac 6fe8def0 d3d9!CBaseDevice::ShowCursor
0241edb0 6fe6e9a0 d3d9!CBaseDevice::CreateAdditionalSwapChain
0241edb4 6fe69ac7 d3d9!CBaseDevice::GetSwapChain
0241edb8 6fe993ca d3d9!CBaseDevice::GetNumberOfSwapChains
0241edbc 6feaf251 d3d9!CBaseDevice::Reset
0241edc0 6fe9a064 d3d9!CBaseDevice::Present
0241edc4 6feb1418 d3d9!CBaseDevice::GetBackBuffer
0241edc8 6fe6bfe9 d3d9!CBaseDevice::GetRasterStatus
0241edcc 6ff0c139 d3d9!CBaseDevice::SetDialogBoxMode
0241edd0 6ff0c3bf d3d9!CBaseDevice::SetGammaRamp
0241edd4 6ff0c4fd d3d9!CBaseDevice::GetGammaRamp
0241edd8 6fe85ddb d3d9!CBaseDevice::CreateTexture
0241eddc 6ff0ca68 d3d9!CBaseDevice::CreateVolumeTexture
0241ede0 6feacb2d d3d9!CBaseDevice::CreateCubeTexture
0241ede4 6fe72d69 d3d9!CBaseDevice::CreateVertexBuffer
0241ede8 6fe732e6 d3d9!CBaseDevice::CreateIndexBuffer
0241edec 6fea0127 d3d9!CBaseDevice::CreateRenderTarget
0241edf0 6ff0cd88 d3d9!CBaseDevice::CreateDepthStencilSurface
0241edf4 6ff0e0e0 d3d9!CBaseDevice::UpdateSurface
0241edf8 6fe846ab d3d9!CBaseDevice::UpdateTexture

可以看到g_pD3dDevice的虛表地址是0x0281899c, pNewD3dDevice的虛表地址是0x0241ed7c,他們各自擁有自己虛表,盡管虛表里的內容是一樣。如果你改變第一個對象的虛表內容,理論上不會影響第二個對象。
@WXX
慚愧,真心熱愛計算機的大學畢業時就很厲害了, 昨天看到的 http://www.zhihu.com/question/23241706/answer/24087891

我是大學沒努力,工作后根據需要補學而已。
@Won
確實,DWM虛擬化只有在大于125%時才會自動開啟
@allen
BitBlt主要針對Monitor DC, 抓某個Monitor的屏幕內容
WindowDC可以抓任何一個窗口的內容, 當然抓時也要BitBlt
re: 基于WinDbg的內存泄漏分析 Richard Wei 2014-02-08 12:22
@jenics
是不是因為你的程序是沒有PDB文件的Release版
re: HOOK技術的一些簡單總結 Richard Wei 2014-02-07 16:13
@allen
嗯, 單看這句話確實是錯的, 但是你要結合我的上下文來看。
我的意思是你這里修改IDirect3DDevice9的虛表內容, 修改的也僅是你當前對象的, 而不會影響其他IDirect3DDevice9對象, 因為他們不是所有對象共享同一虛表的, 但是同一標準C++類的所有對象會共享同一虛表。
re: Window Ghosting Richard Wei 2014-01-09 10:24
@萬連文
對假死窗口調用SendMessage應該會一直等待,不會返回, 直到窗口有響應
@Q
多謝指正, 因為具體我也沒試過, 只是看微軟文檔得出的結論,可看這里第一句:http://msdn.microsoft.com/en-us/library/windows/desktop/hh404487(v=vs.85).aspx
@萬連文
RDP協議是不公開的,他主要定義了圖像的壓縮,加密,傳輸和遠程控制等方法, 本身沒有定義屏幕采樣方法,微軟的遠程桌面用的應該是mirror driver的抓屏。
effective C++ item 38
re: 關于 "Context" 模式 Richard Wei 2013-11-23 14:11
@萬連文
嗯,確實度是關鍵, 實際上怎樣才算一個模塊? 它的粒度可以是個小的靜態Library, 也可能是個龐大的Service。最關鍵的就是要保持模塊的獨立性和層次性,避免形成網狀依賴。
re: HOOK技術的一些簡單總結 Richard Wei 2013-10-31 16:38
@春秋十二月
同意,相對Unix/Linux的穩定, Windows開發要累得多
re: HOOK技術的一些簡單總結 Richard Wei 2013-10-31 10:34
@StarsunYzL
已經加上, 如有不正確的地方,歡迎指正.
re: 遠程線程入門 Richard Wei 2013-10-24 19:45
@flighta
如果別人已經保存了你這個DLL的HINSTANCE,你想熱替換它,這個恐怕不好弄, 只能讓別人Free后再Load。
re: 共享個人寫的一個截屏小工具 Richard Wei 2013-10-12 17:52
@唐地坤
關鍵就是參數CAPTUREBLT, 它讓BitBlt把Layered Window抓下來
re: 共享個人寫的一個截屏小工具 Richard Wei 2013-10-12 13:20
@唐地坤
不是很明白你的問題,不知道你是不是指這個BitBlt( ... SRCCPY | CAPTUREBLT)
re: 關于Windows窗口框架 Richard Wei 2013-09-09 18:34
@聶晏冰

怎么取一次?
每次收到消息都要轉的, 大概代碼如下:
LRESULT CALLBACK XWindow::WndProc(HWND hWnd, UINT uMsg,
WPARAM wParam, LPARAM lParam)
{
XWindow* pThis = NULL;
if (WM_NCCREATE == uMsg)
{
assert(!::IsBadReadPtr((void*)lParam, sizeof(CREATESTRUCT)));
LPCREATESTRUCT lpcs = reinterpret_cast(lParam);
pThis = static_cast(lpcs->lpCreateParams);
pThis->m_hWnd = hWnd;

assert(!::IsBadReadPtr(pThis, sizeof(XWindow)));
::SetWindowLongPtr(hWnd, GWLP_USERDATA, reinterpret_cast(pThis));
}
else
pThis = reinterpret_cast(::GetWindowLongPtr(hWnd, GWLP_USERDATA));

if (pThis)
return pThis->MsgProc(hWnd, uMsg, wParam, lParam);
else
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
re: 關于Windows窗口框架 Richard Wei 2013-09-09 08:52
@jilei
不錯, UserData方式也可以用SetProp存儲, 但是低效同樣也是它的缺點。
re: 關于Windows窗口框架 Richard Wei 2013-09-08 19:16
@avlee
嗯,關鍵我們希望是面向對象的, 方便的支持多實例, 并且希望是線程安全的,這個框架都很好的滿足了。消息處理是窗口程序的根本, 所以簡單方便的消息映射也很重要。
記錄下, 對于菜單窗口, 可以優化消息WM_MOUSEACTIVATE, 返回MA_NOACTIVATE
@bukebushuo
不敢,最近工作中用到這塊東西,所以花點時間總結了下,順便分享
re: 如何獲取桌面截圖 Richard Wei 2013-09-02 17:52
@笨笨熊
基本不可能, 這個用戶體驗也太差了吧
re: 一個高效的內存池實現 Richard Wei 2013-07-29 17:56
@foundwant
確實, 這和分配策略有關。
上面的內存池適合頻繁的分配和釋放的情況, 但是對于多次連續分配就不適合了。其他一些內存池可參考:http://m.shnenglu.com/weiym/archive/2013/04/08/199238.html
re: 理解程序內存 Richard Wei 2013-07-26 15:45
@艾絲凡
恩,文章主要針對C++開發人員的, 沒有這方面經驗是比較難看懂。
re: COM思想的背后 Richard Wei 2013-07-20 17:52
@WXX
同意, 關于套間、列集/散集, 內部涉及到LPC/RPC技術,微軟隱藏了太多東西,盡管Windows操作系統本身用了不少這方面的技術, 但是外部開發人員卻因為不好掌控而盡量不用。
re: XP之后Windows的一些變化 Richard Wei 2013-07-20 11:57
@bukebushuo
確實, 關于Windows桌面應用的下降趨勢, 我以前有過一篇文章http://m.shnenglu.com/weiym/archive/2012/06/21/179645.html
re: 智能指針與庫 Richard Wei 2013-06-23 20:18
@cao
慚愧,不敢誤人子弟。
re: 5年編程之旅 Richard Wei 2013-06-18 09:28
還很年輕,加油
re: C++編程程序風格的思考方法 Richard Wei 2013-06-08 14:36
這不是偶的文章嗎,被斬頭去尾了...
re: 突發奇想 之 遠程調用 Richard Wei 2013-05-20 00:13
rpc
re: 關于“UI線程” Richard Wei 2013-05-06 15:11
說的不錯。其實什么線程都一樣, 這里多了個消息隊列和消息循環,就被叫為 “UI線程”。
共4頁: 1 2 3 4 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美激情第1页| 日韩一级精品| 亚洲精品无人区| 亚洲精品免费网站| 一本到高清视频免费精品| 制服丝袜亚洲播放| 性xx色xx综合久久久xx| 久久精品亚洲热| 麻豆9191精品国产| 亚洲国产精品悠悠久久琪琪| 亚洲三级免费电影| 中文国产一区| 久久精品一区二区国产| 欧美伦理91| 国产亚洲激情视频在线| 亚洲国产日韩一区| 亚洲女人天堂成人av在线| 久久综合色播五月| 亚洲激情视频在线播放| 亚洲欧美一区二区三区在线| 免费亚洲网站| 国产日韩欧美a| 亚洲精品乱码久久久久久黑人 | 亚洲精品中文字幕在线| 亚洲永久免费| 欧美大片免费久久精品三p| 亚洲人成网站在线播| 亚洲欧美日韩综合| 欧美极品一区| 在线观看91久久久久久| 午夜国产一区| 日韩一级在线| 蜜桃久久精品一区二区| 国产精品毛片| 999亚洲国产精| 另类av一区二区| 亚洲欧美成人一区二区在线电影| 欧美国产日韩一区二区在线观看 | 亚洲国产美女久久久久| 亚洲欧美一区在线| 亚洲国产成人av| 亚洲午夜精品一区二区三区他趣| 欧美va天堂va视频va在线| 国产亚洲欧美一区二区三区| 亚洲一区二区精品在线| 亚洲国产日韩在线一区模特| 久久久综合视频| 国内精品久久久久影院优| 欧美在线视频观看| 亚洲影视在线| 国产精品狠色婷| 亚洲影院高清在线| 宅男精品视频| 国产精品久久久久一区二区| 亚洲欧美日韩系列| 在线一区二区三区做爰视频网站| 欧美日本一区二区视频在线观看| 亚洲人成在线免费观看| 欧美激情免费观看| 免费在线一区二区| 亚洲韩国青草视频| 亚洲精品国精品久久99热| 欧美黄色免费| 亚洲视频在线观看视频| 日韩亚洲精品视频| 欧美天堂亚洲电影院在线播放| 亚洲一区二区三区视频播放| 亚洲视频每日更新| 国产视频在线观看一区二区| 久久免费视频在线观看| 久久一区二区三区国产精品| 亚洲人成在线免费观看| 日韩一级欧洲| 国产一区二区视频在线观看| 久热re这里精品视频在线6| 久久久国产精彩视频美女艺术照福利 | 久久午夜激情| 亚洲精品国产精品乱码不99按摩 | 亚洲精品久久久久中文字幕欢迎你| 欧美激情综合亚洲一二区| 毛片av中文字幕一区二区| 亚洲伦理自拍| 亚洲综合三区| 一区在线观看视频| 亚洲国产精品久久久久| 欧美肉体xxxx裸体137大胆| 久久国产精品99久久久久久老狼| 久久视频在线视频| 中文欧美在线视频| 欧美在线你懂的| 亚洲美女诱惑| 欧美影院一区| 一区二区三区蜜桃网| 久久av资源网站| 中文在线资源观看网站视频免费不卡| 亚洲男人的天堂在线aⅴ视频| 在线观看日产精品| 在线一区免费观看| 免费毛片一区二区三区久久久| 一区二区三区日韩精品| 欧美一区二区成人6969| 亚洲美女色禁图| 午夜伦理片一区| 99精品福利视频| 久久人人爽国产| 欧美一区二区精品久久911| 欧美成人一品| 老鸭窝亚洲一区二区三区| 国产精品日韩| 日韩一区二区免费高清| 亚洲第一成人在线| 性欧美暴力猛交另类hd| 亚洲天堂久久| 欧美激情综合网| 欧美丰满高潮xxxx喷水动漫| 国产日韩av一区二区| 日韩亚洲欧美一区二区三区| 亚洲人成亚洲人成在线观看图片| 欧美主播一区二区三区| 欧美影院在线| 欧美激情一区二区| 久久亚洲欧洲| 国产视频欧美视频| 亚洲日本免费| 亚洲六月丁香色婷婷综合久久| 噜噜爱69成人精品| 麻豆亚洲精品| 在线免费一区三区| 久久久国产精彩视频美女艺术照福利 | 亚洲午夜在线视频| aaa亚洲精品一二三区| 免费久久99精品国产自在现线| 美女视频黄免费的久久| 亚洲二区视频| 美女图片一区二区| 免费成人av在线看| 91久久久在线| 欧美国产一区二区在线观看 | 99成人精品| 一区二区高清在线| 欧美日韩理论| 一区二区三区四区国产精品| 中文网丁香综合网| 国产精品都在这里| 亚洲欧美日韩精品久久| 亚洲女同在线| 国产视频一区二区在线观看| 久久精品亚洲精品| 欧美激情小视频| 亚洲美女电影在线| 欧美揉bbbbb揉bbbbb| 99精品国产福利在线观看免费| 99成人在线| 国产欧美一区二区精品婷婷| 久久精品一二三区| 亚洲第一精品久久忘忧草社区| 亚洲免费成人av电影| 欧美啪啪一区| 欧美一区二区三区四区视频 | 亚洲欧美国产日韩中文字幕| 欧美日韩中文字幕综合视频| 欧美一区二区精品在线| 国内揄拍国内精品久久| 美女尤物久久精品| 一区二区三区波多野结衣在线观看| 欧美在线视频二区| 亚洲欧洲三级电影| 国产精品女主播| 老牛影视一区二区三区| 日韩写真在线| 欧美在线免费视屏| 亚洲成人原创| 国产精品日韩专区| 欧美www视频| 亚洲欧美日韩在线高清直播| 亚洲国产精品久久久久秋霞蜜臀 | 欧美日韩国产精品| 性亚洲最疯狂xxxx高清| 亚洲国产精品久久人人爱蜜臀 | 亚洲美女一区| 久久综合九色欧美综合狠狠| 亚洲最新中文字幕| 韩国成人理伦片免费播放| 欧美日韩国产黄| 麻豆av一区二区三区| 亚洲免费在线观看视频| 亚洲国产精品999| 久久久99国产精品免费| 中文欧美日韩| 亚洲人被黑人高潮完整版| 国产亚洲a∨片在线观看| 欧美日韩一区三区四区| 欧美成人午夜激情视频| 欧美专区日韩视频| 亚洲嫩草精品久久| 99国产一区| 亚洲黄色高清| 亚洲风情在线资源站| 另类成人小视频在线| 久久久久久久波多野高潮日日|