锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲最新合集,在线一区亚洲,在线观看av不卡 http://m.shnenglu.com/meet-dream/zh-cn Sun, 16 Nov 2025 00:50:51 GMT Sun, 16 Nov 2025 00:50:51 GMT 60 boost::graph鐨勫悕瀛楀弬鏁?/title> http://m.shnenglu.com/meet-dream/archive/2007/05/28/24987.htmlmeet-dream meet-dream Mon, 28 May 2007 09:08:00 GMT http://m.shnenglu.com/meet-dream/archive/2007/05/28/24987.html http://m.shnenglu.com/meet-dream/comments/24987.html http://m.shnenglu.com/meet-dream/archive/2007/05/28/24987.html#Feedback 5 http://m.shnenglu.com/meet-dream/comments/commentRss/24987.html http://m.shnenglu.com/meet-dream/services/trackbacks/24987.html 闃呰鍏ㄦ枃 ]]> 搴旂敤杞歡鍜屽鉤鍙拌蔣浠剁殑涓鐐規(guī)濊?/title> http://m.shnenglu.com/meet-dream/archive/2007/05/28/24973.htmlmeet-dream meet-dream Mon, 28 May 2007 05:54:00 GMT http://m.shnenglu.com/meet-dream/archive/2007/05/28/24973.html http://m.shnenglu.com/meet-dream/comments/24973.html http://m.shnenglu.com/meet-dream/archive/2007/05/28/24973.html#Feedback 4 http://m.shnenglu.com/meet-dream/comments/commentRss/24973.html http://m.shnenglu.com/meet-dream/services/trackbacks/24973.html 闃呰鍏ㄦ枃 ]]> boost asio 2:threading http://m.shnenglu.com/meet-dream/archive/2007/05/25/24822.htmlmeet-dream meet-dream Fri, 25 May 2007 06:06:00 GMT http://m.shnenglu.com/meet-dream/archive/2007/05/25/24822.html http://m.shnenglu.com/meet-dream/comments/24822.html http://m.shnenglu.com/meet-dream/archive/2007/05/25/24822.html#Feedback 2 http://m.shnenglu.com/meet-dream/comments/commentRss/24822.html http://m.shnenglu.com/meet-dream/services/trackbacks/24822.html 闃呰鍏ㄦ枃 ]]> boost asio 1:how to use it http://m.shnenglu.com/meet-dream/archive/2007/05/25/24821.htmlmeet-dream meet-dream Fri, 25 May 2007 06:04:00 GMT http://m.shnenglu.com/meet-dream/archive/2007/05/25/24821.html http://m.shnenglu.com/meet-dream/comments/24821.html http://m.shnenglu.com/meet-dream/archive/2007/05/25/24821.html#Feedback 2 http://m.shnenglu.com/meet-dream/comments/commentRss/24821.html http://m.shnenglu.com/meet-dream/services/trackbacks/24821.html
#include
#include
void print(const boost::asio::error& /*e*/)
{
std::cout << "Hello, world!\n";
}
int main()
{
// 瀹氫箟涓涓猧o_service,瀹冪殑浣滅敤鏄敞鍐屾湇鍔★紝璋冪敤涓涓紓姝ヨ姹傚畬鎴愬悗瀵瑰簲鐨勬搷浣滐紙涓涓猦andle錛?
boost::asio::io_service io;
//娣誨姞涓涓畾鏃跺櫒鏈嶅姟錛?
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
//鍚姩涓涓紓姝ユ搷浣滐紝璇ユ搷浣滀細(xì)璁板綍浜巌o_service 鐨勪竴涓槦鍒椾腑
t.async_wait(print);
//姣忎釜娉ㄥ唽鐨勬湇鍔″惎鍔ㄥ伐浣?
io.run();
//5s鍚庯紝瀹氭椂鍣ㄦ椂闂村埌錛宲rint琚皟鐢紝鐒跺悗璇andle錛坧rint錛変粠闃熷垪涓垹闄?
return 0;
}
鍙互鐪嬪嚭錛屽涓涓嬌鐢ㄨ呮潵璇達(dá)紝asio鐨勫師鐞嗗緢綆鍗?
1銆傚畾涔変竴涓狪O_Service
2.鍚慖O_Service娉ㄥ唽涓涓湇鍔?璇ユ湇鍔″彲浠ユ槸io鏈嶅姟,涔熷彲浠ユ槸瀹氭椂鍣ㄦ湇鍔?褰撶劧,浣犱篃鍙互鑷繁璁㈠埗涓涓偖浠舵湇鍔?
3.鍦ㄨ鏈嶅姟涓婂惎鍔ㄤ竴涓紓姝ユ搷浣?榪欓渶瑕佷竴涓洖璋冨嚱鏁?
4.濡傛灉寮傛鎿嶄綔瀹屾垚,浣犵殑鍥炶皟鍑芥暟浼?xì)琚皟鐢?
5.鍙兘鐨勯敊璇鐞?
鐞嗚Вasio鐨勫師鐞嗗悗錛屽啓涓涓綉緇滈氫俊鐨勭▼搴忕畝鐩存槸渚濊懌鑺︾敾鐡㈢殑浜嬩簡
鎴戜滑鐪嬩竴涓椂闂存煡璇㈢殑鏈嶅姟绔細(xì)
#include
#include
#include
#include
#include
#include
#include
using boost::asio::ip::udp;
std::string make_daytime_string()
{
using namespace std; // For time_t, time and ctime;
time_t now = time(0);
return ctime(&now);
}
class udp_server
{
public:
//瀵硅薄寤虹珛鏃訛紝娉ㄥ唽浜唘dp鐨剆ocket鏈嶅姟錛屾帴鐫灝卞紑濮嬩簡涓涓紓姝ョ殑鎺ユ敹鎿嶄綔
udp_server(boost::asio::io_service& io_service)
: socket_(io_service, udp::endpoint(udp::v4(), 13))
{
start_receive();
}
private:
void start_receive()
{
//鍚姩鐨勫紓姝ユ搷浣?
socket_.async_receive_from(
boost::asio::buffer(recv_buffer_), //鎺ユ敹緙撳啿鍖?
remote_endpoint_, //瀛樺偍璇鋒眰鐨勫鎴峰湴鍧錛宨p+port
boost::bind(&udp_server::handle_receive, this, //鏋勯犱竴涓洖璋冨嚱鏁幫紝瀹為檯璋冪敤浜嗘垚鍛樺嚱鏁癶andle_receive錛屽叿浣撹boost::bind
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred)
);
}
void handle_receive(const boost::asio::error& error,
std::size_t /*bytes_transferred*/)
{
//鎺ュ埌瀹㈡埛绔殑淇℃伅錛屽拷鐣ヤ簡璇鋒眰鍐呭錛岀洿鎺ュ彂鍥炴湰鏈虹殑鏃墮棿錛屽彂閫佷篃鏄竴涓紓姝ユ搷浣?
if (!error || error == boost::asio::error::message_size)
{
boost::shared_ptr message(
new std::string(make_daytime_string()));
socket_.async_send_to(boost::asio::buffer(*message), remote_endpoint_,
boost::bind(&udp_server::handle_send, this, message,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
start_receive();
}
}
//鍙戦佸畬鎴愶紝蹇界暐
void handle_send(boost::shared_ptr /*message*/,
const boost::asio::error& /*error*/, std::size_t /*bytes_transferred*/)
{
}
udp::socket socket_;
udp::endpoint remote_endpoint_;
boost::array recv_buffer_;
};
int main()
{
try
{
boost::asio::io_service io_service;
udp_server server(io_service);
io_service.run();
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
}
return 0;
}
鍙互鐪嬪埌錛岀敤asio寮鍙戜竴涓綉緇滄湇鍔$鐨勭▼搴忎竴浠跺涔堢畝鍗曠殑浜嬨傚姝ょ▼搴忕◢鍔犳敼鍔紝鎴戜滑灝卞彲浠ュ緩绔嬩竴涓敮鎸佸綰跨▼錛岄珮騫跺彂鐨勭綉緇滄湇鍔$▼搴忋?
鍚庨潰鎴戜滑灝嗙戶緇垎鏋恆sio鐨勫綰跨▼鏀寔錛屽緙撳啿錛岀綉緇滄祦絳夋洿濂界殑鍩虹鐗規(guī)с? ]]> a simple template hook class for function and member functions http://m.shnenglu.com/meet-dream/archive/2007/03/05/19265.htmlmeet-dream meet-dream Mon, 05 Mar 2007 15:51:00 GMT http://m.shnenglu.com/meet-dream/archive/2007/03/05/19265.html http://m.shnenglu.com/meet-dream/comments/19265.html http://m.shnenglu.com/meet-dream/archive/2007/03/05/19265.html#Feedback 0 http://m.shnenglu.com/meet-dream/comments/commentRss/19265.html http://m.shnenglu.com/meet-dream/services/trackbacks/19265.html Some times,we need too hook some function to do something that's not so easy to do with normally add somecode.A solution is to hook focused functions and interface.Here is a template hook class maybe help your work easier,which complie with vs2005.It midify the jmp table to replace the function,maybe not聽properly聽 for other compliers. class HookPfn { 聽struct make_writeable 聽{ 聽聽void* p; 聽聽MEMORY_BASIC_INFORMATION mbi_thunk; 聽聽make_writeable(void* _p):p(_p) 聽聽{ 聽聽聽VirtualQuery(p, &mbi_thunk, sizeof(MEMORY_BASIC_INFORMATION)); 聽聽聽VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk.RegionSize, PAGE_READWRITE, &mbi_thunk.Protect); 聽聽 聽聽} 聽聽~make_writeable() 聽聽{ 聽聽聽VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk.RegionSize, mbi_thunk.Protect,&mbi_thunk.Protect); 聽聽} 聽}; public: 聽template<class F> 聽void restore(F pfn,unsigned long handle) 聽{ 聽聽 聽聽void* p; 聽聽__asm mov eax,[pfn] 聽聽__asm mov dword ptr[p],eax 聽聽make_writeable write(p); 聽聽__asm push ecx 聽聽__asm mov eax,pfn 聽聽__asm inc eax 聽聽__asm mov ecx,handle 聽聽__asm mov dword ptr[eax],ecx 聽聽__asm pop ecx 聽} 聽template<class F1,class F2> 聽unsigned long redirect(F1 pfn1,F2 pfn2) 聽{ 聽聽聽//should use restrict object prevent聽F1 and F2 's arguments and type not same 聽聽void* p; 聽聽__asm mov eax,[pfn1] 聽聽__asm mov dword ptr[p],eax 聽聽make_writeable write(p);
聽聽unsigned long bas1,bas2,of1,of2,of; 聽聽__asm push ecx 聽聽__asm mov eax,pfn1 聽聽__asm mov bas1,eax 聽聽__asm inc eax 聽聽__asm mov ecx,dword ptr[eax] 聽聽__asm mov of1,ecx
聽聽__asm mov eax,pfn2 聽聽__asm mov bas2,eax 聽聽__asm inc eax 聽聽__asm mov ecx,dword ptr[eax] 聽聽__asm mov of2,ecx
聽聽of=(bas2-bas1+of2-of1)+of1;
聽聽__asm mov eax,pfn1 聽聽__asm inc eax 聽聽__asm mov ecx,of 聽聽__asm mov dword ptr[eax],ecx 聽聽__asm pop ecx 聽聽return of1; 聽} 聽 }; class mmt { public: 聽void donothing() { } 聽void donothing(int) { } 聽聽void dosomething() { } }; void fastcall(int a,int b) { } void askcall(int,int) { }
It can be used as example: int main() { 聽HookMemberFunction sh; 聽unsigned long hd=sh.redirect(&fastcall,&askcall);//test api 聽fastcall(0,0);//two聽function 聽askcall(0,0); 聽sh.restore(&fastcall,hd); 聽askcall(0,0); 聽fastcall(0,0); //test overlay functions(donothing) 聽typedef void (mmt::*sp)(void); 聽sp p1=&mmt::dosomething; 聽sp p2=&mmt::donothing; 聽hd=sh.redirect(p1,p2); 聽mmt mt;//a class 聽mt.donothing(); 聽mt.dosomething(); 聽sh.restore(p1,hd); 聽mt.donothing(); 聽mt.dosomething(); } Although it can be work right,addtionly we may be use it not properly.Youcan add some strict class to prevent bad use of it by check if the argument and return type is strictly same.,if you need it.
]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
欧美在线播放 |
亚洲免费在线观看视频 |
亚洲国产欧美一区二区三区同亚洲 |
欧美三级午夜理伦三级中文幕 |
欧美连裤袜在线视频 |
欧美顶级少妇做爰 |
欧美日韩成人在线播放 |
欧美午夜视频在线 |
国产欧美一区二区精品忘忧草 |
国产日韩一区二区 |
亚洲福利视频三区 |
日韩小视频在线观看 |
午夜精品亚洲 |
另类图片国产 |
日韩亚洲欧美成人 |
欧美一区二区三区在线看 |
久久综合久久久 |
欧美日韩国产一区二区三区地区 |
欧美图区在线视频 |
伊人成年综合电影网 |
亚洲五月婷婷 |
欧美高清视频 |
香蕉视频成人在线观看 |
欧美金8天国 |
国模一区二区三区 |
亚洲桃色在线一区 |
国产色视频一区 |
黄网站免费久久 |
亚洲在线免费视频 |
欧美激情一区在线 |
久久精品导航 |
国产视频综合在线 |
亚洲图片激情小说 |
亚洲第一精品福利 |
亚洲欧美成人网 |
欧美日韩另类字幕中文 |
激情自拍一区 |
欧美专区在线播放 |
亚洲精品中文字幕在线 |
久久精品男女 |
国产一区二区成人 |
欧美亚洲三区 |
一区二区三区免费观看 |
欧美成人精品一区 |
国产综合av |
欧美一区二区三区另类
|
99精品视频一区 |
久久一综合视频 |
国产一区二区三区不卡在线观看 |
亚洲少妇诱惑 |
99视频在线精品国自产拍免费观看 |
亚洲精品小视频在线观看 |
亚洲国产精品久久久久婷婷884
|
亚洲性av在线 |
欧美国产日韩在线 |
久久精品亚洲精品 |
国产乱人伦精品一区二区 |
99亚洲一区二区 |
亚洲欧洲精品一区二区三区 |
久久久噜噜噜久久狠狠50岁 |
国内精品久久久久久
|
欧美成人精品 |
亚洲精品一区二区三区樱花 |
欧美成人一区二区 |
蜜桃av久久久亚洲精品 |
亚洲国产成人午夜在线一区 |
久久青青草综合 |
久久久久久夜精品精品免费 |
伊人久久综合97精品 |
欧美 日韩 国产在线
|
黄色综合网站 |
免费成人高清视频 |
欧美jizz19性欧美 |
一区二区三区视频免费在线观看 |
亚洲精品在线观看免费 |
国产精品久久久久高潮 |
久久9热精品视频 |
久久野战av |
亚洲美女在线视频 |
亚洲婷婷综合久久一本伊一区 |
国产精品入口麻豆原神 |
国产精品素人视频 |
久久精品国产综合精品 |
久久久久久91香蕉国产 |
亚洲精品一区二区三区婷婷月
|
久久视频一区 |
模特精品在线 |
香蕉久久精品日日躁夜夜躁 |
久久xxxx精品视频 |
亚洲精品免费一区二区三区 |
99综合视频 |
激情六月婷婷综合 |
亚洲精品一区在线观看香蕉 |
国产伦精品免费视频 |
美女精品一区 |
国产精品国产三级欧美二区 |
久久香蕉国产线看观看av |
欧美xx视频 |
欧美自拍丝袜亚洲 |
欧美日韩999 |
久久女同精品一区二区 |
欧美日韩二区三区 |
久久综合久久久 |
国产精品久久久久久久久免费桃花 |
在线精品视频在线观看高清 |
亚洲视频在线观看三级 |
久久国产精品72免费观看 |
亚洲精品一二三区 |
亚洲欧美精品一区 |
亚洲美女视频网 |
久久天堂国产精品 |
欧美一区二区成人 |
欧美日韩国产综合视频在线观看 |
久久精品国产第一区二区三区 |
欧美精品日韩www.p站 |
久久精品免费 |
国产精品久久久久毛片软件 |
欧美激情精品久久久六区热门
|
久久久久国产一区二区三区四区 |
亚洲一区二区三区乱码aⅴ |
老司机成人网 |
久久久噜噜噜 |
国产日韩欧美精品综合 |
制服诱惑一区二区 |
一区二区三区欧美在线 |
欧美激情精品久久久久久黑人 |
久久尤物电影视频在线观看 |
国产精品va在线 |
日韩亚洲精品电影 |
一区二区三区国产在线观看 |
欧美 日韩 国产 一区 |
免费成人av在线看 |
在线成人亚洲 |
老司机精品导航 |
蜜臀久久99精品久久久久久9
|
国产精品久久久久婷婷 |
日韩特黄影片 |
在线亚洲一区 |
欧美日韩系列 |
中日韩美女免费视频网址在线观看 |
日韩一区二区高清 |
欧美日韩免费高清一区色橹橹 |
欧美黄色aaaa |
一本不卡影院 |
国产精品日韩在线 |
亚洲欧美一区二区原创 |
久久激情网站 |
在线观看精品视频 |
欧美国产亚洲视频 |
日韩一区二区久久 |
亚洲欧美综合国产精品一区 |
国产欧美一区二区三区视频 |
久久成人这里只有精品 |
欧美丰满高潮xxxx喷水动漫 |
亚洲精品日韩欧美 |
欧美三级乱人伦电影 |
亚洲免费网址 |
免费观看欧美在线视频的网站 |
亚洲国产精品成人综合色在线婷婷
|
国产精品99久久99久久久二8
|
欧美日韩精品二区第二页 |
亚洲国内精品在线 |
亚洲午夜成aⅴ人片 |
国产精品入口麻豆原神 |
久久精品一区二区 |
亚洲人久久久 |
久久精彩免费视频 |
亚洲日本成人网 |
国产精品美女在线 |
免费看av成人 |
午夜精品福利电影 |
亚洲国产欧美日韩另类综合 |
亚洲综合成人婷婷小说 |
在线观看视频一区二区欧美日韩 |
欧美精品在线免费观看 |
欧美在线观看一区 |
亚洲精品自在久久 |
美女脱光内衣内裤视频久久网站 |
一区二区三区高清在线 |
激情亚洲一区二区三区四区 |
欧美日韩在线亚洲一区蜜芽 |
久久久久久久久久久久久女国产乱 |
亚洲精品乱码久久久久久 |
久久久久国内 |
一本到12不卡视频在线dvd
|
欧美一级黄色录像 |
亚洲经典三级 |
韩国精品一区二区三区 |
国产精品hd |
欧美日本国产 |
久久综合九色综合欧美狠狠 |
亚洲视频狠狠 |
日韩视频中午一区 |
亚洲国产精品一区二区三区 |
久久婷婷成人综合色 |
亚欧美中日韩视频 |
亚洲一品av免费观看 |
99精品免费网 |
亚洲精品一区二区三 |
亚洲高清影视 |