锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲一区二区在线观看,欧美日本在线视频,亚洲精品一二区 http://www.shnenglu.com/meet-dream/zh-cn Mon, 29 Sep 2025 21:09:45 GMT Mon, 29 Sep 2025 21:09:45 GMT 60 boost::graph鐨勫悕瀛楀弬鏁?/title> http://www.shnenglu.com/meet-dream/archive/2007/05/28/24987.htmlmeet-dream meet-dream Mon, 28 May 2007 09:08:00 GMT http://www.shnenglu.com/meet-dream/archive/2007/05/28/24987.html http://www.shnenglu.com/meet-dream/comments/24987.html http://www.shnenglu.com/meet-dream/archive/2007/05/28/24987.html#Feedback 5 http://www.shnenglu.com/meet-dream/comments/commentRss/24987.html http://www.shnenglu.com/meet-dream/services/trackbacks/24987.html 闃呰鍏ㄦ枃 ]]> 搴旂敤杞歡鍜屽鉤鍙拌蔣浠剁殑涓鐐規濊?/title> http://www.shnenglu.com/meet-dream/archive/2007/05/28/24973.htmlmeet-dream meet-dream Mon, 28 May 2007 05:54:00 GMT http://www.shnenglu.com/meet-dream/archive/2007/05/28/24973.html http://www.shnenglu.com/meet-dream/comments/24973.html http://www.shnenglu.com/meet-dream/archive/2007/05/28/24973.html#Feedback 4 http://www.shnenglu.com/meet-dream/comments/commentRss/24973.html http://www.shnenglu.com/meet-dream/services/trackbacks/24973.html 闃呰鍏ㄦ枃 ]]> boost asio 2:threading http://www.shnenglu.com/meet-dream/archive/2007/05/25/24822.htmlmeet-dream meet-dream Fri, 25 May 2007 06:06:00 GMT http://www.shnenglu.com/meet-dream/archive/2007/05/25/24822.html http://www.shnenglu.com/meet-dream/comments/24822.html http://www.shnenglu.com/meet-dream/archive/2007/05/25/24822.html#Feedback 2 http://www.shnenglu.com/meet-dream/comments/commentRss/24822.html http://www.shnenglu.com/meet-dream/services/trackbacks/24822.html 闃呰鍏ㄦ枃 ]]> boost asio 1:how to use it http://www.shnenglu.com/meet-dream/archive/2007/05/25/24821.htmlmeet-dream meet-dream Fri, 25 May 2007 06:04:00 GMT http://www.shnenglu.com/meet-dream/archive/2007/05/25/24821.html http://www.shnenglu.com/meet-dream/comments/24821.html http://www.shnenglu.com/meet-dream/archive/2007/05/25/24821.html#Feedback 2 http://www.shnenglu.com/meet-dream/comments/commentRss/24821.html http://www.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));
//鍚姩涓涓紓姝ユ搷浣滐紝璇ユ搷浣滀細璁板綍浜巌o_service 鐨勪竴涓槦鍒椾腑
t.async_wait(print);
//姣忎釜娉ㄥ唽鐨勬湇鍔″惎鍔ㄥ伐浣?
io.run();
//5s鍚庯紝瀹氭椂鍣ㄦ椂闂村埌錛宲rint琚皟鐢紝鐒跺悗璇andle錛坧rint錛変粠闃熷垪涓垹闄?
return 0;
}
鍙互鐪嬪嚭錛屽涓涓嬌鐢ㄨ呮潵璇達紝asio鐨勫師鐞嗗緢綆鍗?
1銆傚畾涔変竴涓狪O_Service
2.鍚慖O_Service娉ㄥ唽涓涓湇鍔?璇ユ湇鍔″彲浠ユ槸io鏈嶅姟,涔熷彲浠ユ槸瀹氭椂鍣ㄦ湇鍔?褰撶劧,浣犱篃鍙互鑷繁璁㈠埗涓涓偖浠舵湇鍔?
3.鍦ㄨ鏈嶅姟涓婂惎鍔ㄤ竴涓紓姝ユ搷浣?榪欓渶瑕佷竴涓洖璋冨嚱鏁?
4.濡傛灉寮傛鎿嶄綔瀹屾垚,浣犵殑鍥炶皟鍑芥暟浼氳璋冪敤
5.鍙兘鐨勯敊璇鐞?
鐞嗚Вasio鐨勫師鐞嗗悗錛屽啓涓涓綉緇滈氫俊鐨勭▼搴忕畝鐩存槸渚濊懌鑺︾敾鐡㈢殑浜嬩簡
鎴戜滑鐪嬩竴涓椂闂存煡璇㈢殑鏈嶅姟绔細
#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鐨勫綰跨▼鏀寔錛屽緙撳啿錛岀綉緇滄祦絳夋洿濂界殑鍩虹鐗規с? ]]> a simple template hook class for function and member functions http://www.shnenglu.com/meet-dream/archive/2007/03/05/19265.htmlmeet-dream meet-dream Mon, 05 Mar 2007 15:51:00 GMT http://www.shnenglu.com/meet-dream/archive/2007/03/05/19265.html http://www.shnenglu.com/meet-dream/comments/19265.html http://www.shnenglu.com/meet-dream/archive/2007/03/05/19265.html#Feedback 0 http://www.shnenglu.com/meet-dream/comments/commentRss/19265.html http://www.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.
]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
亚洲图片在线 |
久久aⅴ国产欧美74aaa |
久久人人爽人人爽爽久久 |
国产欧美 在线欧美 |
性久久久久久 |
欧美一区在线视频 |
影音先锋亚洲视频 |
欧美岛国激情 |
欧美连裤袜在线视频 |
在线亚洲欧美视频 |
亚洲性线免费观看视频成熟 |
国产精品区二区三区日本 |
欧美一级视频精品观看 |
欧美专区在线 |
最新日韩中文字幕 |
夜夜夜久久久 |
好吊日精品视频 |
久久成人在线 |
欧美国产专区 |
亚洲欧洲精品一区 |
亚洲国产欧美一区 |
欧美久久久久 |
久久男人av资源网站 |
欧美va亚洲va日韩∨a综合色 |
一本色道精品久久一区二区三区 |
欧美成人午夜激情视频 |
久久久久国产一区二区 |
亚洲免费观看在线观看 |
性欧美大战久久久久久久久 |
久久久久久有精品国产 |
亚洲一区日韩在线 |
久久网站热最新地址 |
亚洲自拍高清 |
欧美不卡福利 |
久久婷婷色综合 |
国产精品国产三级国产专播精品人 |
狼狼综合久久久久综合网 |
欧美日韩精品国产 |
免费在线成人av |
国产欧美韩国高清 |
99re热这里只有精品免费视频 |
在线成人免费观看 |
亚洲少妇在线 |
亚洲精品极品 |
久久久伊人欧美 |
午夜精品福利一区二区三区av
|
欧美黄色一区二区 |
国产午夜精品久久久久久免费视 |
亚洲精品网址在线观看 |
亚洲福利视频在线 |
香蕉成人伊视频在线观看
|
国产欧美日韩三级 |
亚洲精品综合久久中文字幕 |
亚洲国产小视频在线观看 |
亚洲专区在线视频 |
日韩天天综合 |
蜜臀av性久久久久蜜臀aⅴ |
久久久久成人精品 |
国产精品日韩一区 |
亚洲桃色在线一区 |
亚洲午夜成aⅴ人片 |
欧美日韩成人综合天天影院 |
亚洲国语精品自产拍在线观看 |
极品少妇一区二区 |
久久久午夜视频 |
另类天堂av |
红桃视频国产精品 |
久久er精品视频 |
久久夜色精品一区 |
亚洲高清免费 |
模特精品裸拍一区 |
亚洲国产老妈 |
国产精品99久久久久久白浆小说
|
欧美电影免费观看网站 |
欧美大色视频 |
一本色道久久综合亚洲二区三区 |
欧美日韩国产a |
一区二区三区高清在线 |
性做久久久久久久免费看 |
国产女人精品视频 |
久久久久国产免费免费 |
亚洲激情成人网 |
一区二区三区欧美 |
欧美日韩裸体免费视频 |
在线一区日本视频 |
久久久人成影片一区二区三区观看 |
国产亚洲人成a一在线v站 |
久久综合九色99 |
91久久国产综合久久91精品网站 |
国产精品手机视频 |
午夜日韩在线 |
欧美激情视频一区二区三区在线播放
|
香蕉成人啪国产精品视频综合网 |
久久全国免费视频 |
亚洲欧洲日产国码二区 |
欧美性一二三区 |
久久aⅴ乱码一区二区三区 |
亚洲黄色成人久久久 |
一本色道久久综合亚洲精品婷婷 |
国产伦精品一区二区三区视频黑人 |
久久精品欧洲 |
一本色道久久88综合亚洲精品ⅰ |
久久精品伊人 |
99精品国产99久久久久久福利 |
国产精品美女久久久 |
久久综合久色欧美综合狠狠 |
99视频在线观看一区三区 |
久久综合九色综合欧美就去吻
|
亚洲福利视频二区 |
欧美性开放视频 |
麻豆成人在线 |
欧美亚洲日本国产 |
日韩亚洲欧美成人 |
欧美成人69av |
久久黄色影院 |
亚洲一区三区视频在线观看 |
亚洲第一黄色 |
国产一区亚洲一区 |
国产精品久久久久久久久借妻 |
免费成人av |
欧美一级视频一区二区 |
亚洲免费av网站 |
欧美日韩成人一区二区 |
久久精品国产亚洲aⅴ |
夜夜嗨av一区二区三区 |
在线日韩视频 |
国产一区自拍视频 |
国产精品久久久久久亚洲调教 |
欧美国产一区二区三区激情无套 |
久久久999精品视频 |
午夜精品av |
亚洲天堂激情 |
一本色道精品久久一区二区三区 |
亚洲国产高清一区二区三区 |
久久综合激情 |
久久午夜视频 |
久久天天躁狠狠躁夜夜爽蜜月 |
久久av老司机精品网站导航 |
午夜欧美大尺度福利影院在线看 |
亚洲视频一区在线观看 |
一区二区三区精品国产 |
日韩午夜激情 |
一区二区三区国产精品 |
一本一本大道香蕉久在线精品 |
亚洲美女色禁图 |
亚洲欧洲日本mm |
91久久精品国产91久久性色tv |
亚洲电影观看 |
亚洲国产高清视频 |
亚洲激情影院 |
亚洲每日更新 |
亚洲桃花岛网站 |
午夜精品久久久久久久蜜桃app |
亚洲欧美日韩在线观看a三区 |
午夜视黄欧洲亚洲 |
欧美一二三视频 |
久久精品视频在线观看 |
美女国内精品自产拍在线播放 |
男同欧美伦乱 |
亚洲日本va午夜在线影院 |
亚洲欧美在线aaa |
欧美影院视频 |
欧美成人中文字幕 |
欧美国产欧美亚洲国产日韩mv天天看完整
|
99香蕉国产精品偷在线观看 |
亚洲全部视频 |
这里只有精品视频 |
欧美一区二区三区精品 |
看欧美日韩国产 |
欧美日韩精品欧美日韩精品
|
亚洲国产成人av |
日韩一级黄色av |
午夜精品福利一区二区蜜股av |
久久精品国产在热久久 |
欧美成人午夜激情视频 |
亚洲日本激情 |
亚洲砖区区免费 |
欧美二区视频 |
国产午夜精品一区二区三区欧美
|
在线成人h网 |
亚洲自拍偷拍视频 |
男人的天堂亚洲 |
亚洲午夜av电影 |
久热精品视频在线 |
欧美性视频网站 |
亚洲国产精品女人久久久 |
亚洲视频每日更新 |
久久久精品网 |
99xxxx成人网 |
久久久免费av |
国产精品入口麻豆原神 |
亚洲三级视频 |
久久久久久穴 |
亚洲视频在线观看三级 |
欧美成人a视频 |
亚洲精品美女久久久久 |
一区二区三区高清在线 |
麻豆免费精品视频 |
亚洲欧美日本国产专区一区 |
欧美激情一区三区 |