锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲一区二区在线观看,欧美日本在线视频,亚洲精品一二区 http://m.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://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 闃呰鍏ㄦ枃 ]]> 搴旂敤杞歡鍜屽鉤鍙拌蔣浠剁殑涓鐐規濊?/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));
//鍚姩涓涓紓姝ユ搷浣滐紝璇ユ搷浣滀細璁板綍浜巌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://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.
]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
国产精品综合色区在线观看 |
亚洲欧洲另类国产综合 |
欧美一区二区大片 |
亚洲午夜电影在线观看 |
亚洲色图在线视频 |
亚洲女同精品视频 |
久久久www免费人成黑人精品
|
午夜久久黄色 |
久久免费精品日本久久中文字幕 |
久久女同互慰一区二区三区 |
亚洲成色精品 |
国产精品99久久久久久宅男
|
亚洲精品免费看 |
亚洲美女色禁图 |
欧美一区二区免费观在线 |
老司机午夜免费精品视频 |
欧美日韩国产成人在线免费
|
一区二区三区视频在线
|
亚洲黄色在线看 |
一本久久a久久免费精品不卡 |
日韩视频精品 |
午夜伦欧美伦电影理论片 |
西瓜成人精品人成网站 |
欧美插天视频在线播放 |
欧美另类一区 |
欧美午夜精品久久久久免费视 |
国产精品va在线播放 |
国产麻豆视频精品 |
在线精品亚洲 |
亚洲视频在线观看免费 |
欧美一区二区三区另类
|
国产美女诱惑一区二区 |
国产亚洲精品资源在线26u |
黄色一区二区三区四区 |
亚洲高清在线观看 |
一本色道久久综合亚洲二区三区
|
欧美喷潮久久久xxxxx |
免费成人网www |
久热re这里精品视频在线6 |
久久综合久久美利坚合众国 |
欧美www在线 |
国产精品伦子伦免费视频 |
国产日本亚洲高清 |
亚洲成色777777女色窝 |
亚洲午夜日本在线观看 |
久久一二三四 |
亚洲精品久久久久久下一站 |
午夜精品久久久久久99热 |
欧美gay视频激情 |
国产精品综合色区在线观看 |
亚洲久久成人 |
久久久九九九九 |
99www免费人成精品 |
久久久久久久性 |
欧美成人午夜免费视在线看片 |
欧美成人一区二区三区在线观看
|
欧美日韩喷水 |
精品成人一区二区三区四区 |
亚洲尤物在线视频观看 |
亚洲国产日日夜夜 |
久久久欧美精品 |
国产乱码精品一区二区三 |
亚洲免费av片 |
欧美成人激情视频免费观看 |
欧美一区中文字幕 |
国产精品成av人在线视午夜片 |
亚洲国产精品成人精品 |
欧美在线视频免费观看 |
一区二区三区www |
欧美国产一区二区在线观看 |
一区二区三区在线看 |
久久久www成人免费毛片麻豆 |
亚洲精选一区二区 |
欧美成人午夜激情 |
91久久夜色精品国产网站 |
免费在线一区二区 |
久久精品夜夜夜夜久久 |
国产在线拍揄自揄视频不卡99 |
午夜在线观看免费一区 |
亚洲图片在线观看 |
国产精品海角社区在线观看 |
亚洲视频中文 |
一本色道久久综合亚洲精品婷婷 |
亚洲欧美日韩国产一区二区 |
国产精品电影在线观看 |
亚洲综合成人在线 |
亚洲视屏在线播放 |
国产精品一区二区欧美 |
亚洲久久成人 |
免费观看久久久4p |
美国成人直播 |
亚洲精品一区二区在线观看 |
欧美激情一区二区三区不卡 |
美女黄网久久 |
一本一本久久 |
亚洲一区二区三区四区中文 |
国产欧美一区二区三区久久 |
正在播放欧美视频 |
欧美日韩在线一区 |
亚洲综合另类 |
亚洲欧美激情在线视频 |
国产精品永久免费视频 |
久久国产日韩 |
久久中文字幕导航 |
亚洲毛片一区 |
亚洲永久在线观看 |
狠狠色香婷婷久久亚洲精品 |
欧美国产日韩视频 |
欧美性视频网站 |
久久精品30 |
免费在线一区二区 |
亚洲一区免费观看 |
久久精品国产一区二区电影 |
亚洲精选久久 |
午夜激情久久久 |
国产九色精品成人porny |
久久久91精品国产一区二区精品 |
久久久精品一区二区三区 |
亚洲精品视频免费 |
亚洲尤物影院 |
亚洲人人精品 |
午夜精品一区二区三区四区 |
亚洲欧洲免费视频 |
亚洲一区二区毛片 |
亚洲国产欧美久久 |
亚洲自拍偷拍福利 |
亚洲精品中文字幕有码专区 |
性欧美大战久久久久久久免费观看
|
亚洲一卡久久 |
亚洲精品乱码久久久久久蜜桃91 |
这里只有精品电影 |
亚洲人成毛片在线播放 |
亚洲一区日韩在线 |
日韩网站在线看片你懂的 |
午夜在线一区 |
亚洲私人影吧 |
麻豆freexxxx性91精品 |
久久精品久久99精品久久 |
欧美日韩成人综合 |
欧美本精品男人aⅴ天堂 |
国产欧美日韩精品在线 |
99国产精品国产精品久久 |
亚洲风情在线资源站 |
久久国产精品久久久久久 |
亚洲专区在线视频 |
欧美国产亚洲精品久久久8v |
蜜桃av噜噜一区 |
国产欧美一区二区精品忘忧草
|
国产精品久久久久久一区二区三区
|
国产精品午夜久久 |
亚洲国产精彩中文乱码av在线播放 |
国产欧美精品在线观看 |
免费观看一区 |
影音先锋亚洲视频 |
午夜亚洲伦理 |
香蕉乱码成人久久天堂爱免费 |
欧美日韩免费在线观看 |
亚洲国产精品久久久久秋霞蜜臀 |
国外成人在线视频网站 |
欧美一区二区三区四区在线观看地址
|
国内精品模特av私拍在线观看 |
久久综合一区二区 |
国产精品高潮久久 |
亚洲影院色在线观看免费 |
亚洲性夜色噜噜噜7777 |
国产精品久久一卡二卡 |
夜色激情一区二区 |
亚洲一区二区精品 |
国产精品扒开腿爽爽爽视频 |
在线视频精品一区 |
欧美一区成人 |
国产精品视频免费在线观看 |
亚洲视频你懂的 |
性欧美精品高清 |
国语自产精品视频在线看8查询8 |
欧美中文在线免费 |
欧美国产日韩精品免费观看 |
亚洲精品免费在线播放 |
欧美日本亚洲韩国国产 |
亚洲一级影院 |
蜜臀av性久久久久蜜臀aⅴ |
亚洲国产欧美久久 |
欧美日韩视频一区二区三区 |
亚洲一区二区网站 |
久久综合999 |
亚洲另类黄色 |
国产精品日韩在线一区 |
久久久久九九视频 |
亚洲精品视频免费 |
欧美在线观看网址综合 |
国产伦精品一区二区三区高清 |
久久久久天天天天 |
狼狼综合久久久久综合网 |
韩国视频理论视频久久 |
久久精品亚洲 |
一区二区三区精品视频在线观看 |
久久久久久久性 |
亚洲香蕉成视频在线观看 |
一区二区三区在线高清 |
国产精品久久二区二区 |