贝贝源代码分析之一

程序入口点代码分析
  1. int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/LPTSTR lpstrCmdLine, int nCmdShow) {
  2. #ifndef _DEBUG
  3.     SingleInstance dcapp(_T("{STRONGDC-AEE8350A-B49A-4753-AB4B-E55479A48351}"));
  4. #else
  5.     SingleInstance dcapp(_T("{STRONGDC-AEE8350A-B49A-4753-AB4B-E55479A48350}"));
  6. #endif
  7. //以上代码得到了单例的对象
  8.     if(dcapp.IsAnotherInstanceRunning()) {
  9.         // Allow for more than one instance...
  10.                 bool multiple = false;
  11.         if(_tcslen(lpstrCmdLine) == 0) {
  12.             if (::MessageBox(NULL, _T("There is already an instance of StrongDC++ running./nDo you want to launch another instance anyway?"), 
  13.                 _T(APPNAME) _T(" ") _T(VERSIONSTRING), MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2 | MB_TOPMOST) == IDYES) {
  14.      //设置可以启动多个实例                                       
  15.                 multiple = true;
  16.             }
  17.         }
  18.         if(multiple == false) {
  19.             HWND hOther = NULL;
  20.             EnumWindows(searchOtherInstance, (LPARAM)&hOther);
  21.             if( hOther != NULL ) {
  22.                 // pop up
  23.                 ::SetForegroundWindow(hOther);
  24.                 if( IsIconic(hOther)) {
  25.                     // restore
  26.                     ::ShowWindow(hOther, SW_RESTORE);
  27.                 }
  28.                 sendCmdLine(hOther, lpstrCmdLine);
  29.             }
  30.             return FALSE;
  31.         }
  32.     }
  33.     
  34.     
  35.     // For SHBrowseForFolder, UPnP
  36.     HRESULT hRes = ::CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); 
  37. #ifdef _DEBUG
  38.     EXTENDEDTRACEINITIALIZE( Util::getDataPath().c_str() );
  39.     //File::deleteFile(Util::getDataPath() + "exceptioninfo.txt");
  40. #endif
  41.     LPTOP_LEVEL_EXCEPTION_FILTER pOldSEHFilter = NULL;
  42.     pOldSEHFilter = SetUnhandledExceptionFilter(&DCUnhandledExceptionFilter);
  43.     
  44.     AtlInitCommonControls(ICC_COOL_CLASSES | ICC_BAR_CLASSES | ICC_LISTVIEW_CLASSES | ICC_TREEVIEW_CLASSES | ICC_PROGRESS_CLASS | ICC_STANDARD_CLASSES |
  45.         ICC_TAB_CLASSES | ICC_UPDOWN_CLASS | ICC_USEREX_CLASSES);   // add flags to support other controls
  46.     
  47.     hRes = _Module.Init(NULL, hInstance);
  48.     ATLASSERT(SUCCEEDED(hRes));
  49.     
  50.     try {       
  51.         File f(WinUtil::getAppName(), File::READ, File::OPEN);
  52.         TigerTree tth(TigerTree::calcBlockSize(f.getSize(), 1));
  53.         size_t n = 0;
  54.         size_t n2 = DEBUG_BUFSIZE;
  55.         while( (n = f.read(buf, n2)) > 0) {
  56.             tth.update(buf, n);
  57.             n2 = DEBUG_BUFSIZE;
  58.         }
  59.         tth.finalize();
  60.         strcpy(::tth, tth.getRoot().toBase32().c_str());
  61.         WinUtil::tth = Text::toT(::tth);
  62.     } catch(const FileException&) {
  63.         dcdebug("Failed reading exe/n");
  64.     }   
  65.     HINSTANCE hInstRich = ::LoadLibrary(_T("RICHED20.DLL"));    
  66.     int nRet = Run(lpstrCmdLine, nCmdShow);
  67.  
  68.     if ( hInstRich ) {
  69.         ::FreeLibrary(hInstRich);
  70.     }
  71.     
  72.     // Return back old VS SEH handler
  73.     if (pOldSEHFilter != NULL)
  74.         SetUnhandledExceptionFilter(pOldSEHFilter);
  75.     _Module.Term();
  76.     ::CoUninitialize();
  77. #ifdef _DEBUG
  78.     EXTENDEDTRACEUNINITIALIZE();
  79. #endif
  80.     return nRet;
  81. }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
最新修复鹅贝贝场理财拆分系统源码!可以通过购买动物来饲养,生产,收获,出手,偷取,升级,签到,收益的游戏源码。已经测试可用。 玩法介绍: 一、(鹅贝贝)玩家须知: ①新买蛋注册的会员提供一个“实习孵蛋房”进行实习和学习,该房仅孵化注册时首次买到的即时成交的种蛋(1 一 10 只),只要在 7 天之内本人签到一次和徒弟帮加温一次即可成功孵化! ②饿鹅急救规则:对于前一天因自身原因忘记喂食而被饿昏的鹅,可在当天通过购买“急救包”(每只鹅 0.5 元菜票)拯救回来(不能超过一天)。 ③为照顾更多用户能参与进来,每人每天限购额 50 只蛋和 50 只鹅。 新玩家进场购买十个 DanDan 不受时间限制(最多 10 个) 新玩家实习孵化房,7 天内,本人签到一次,徒弟帮加温一次,就可以孵化成功 JiJi 交易卖出。 老玩家要提前充值好菜票,9 点 1 秒准时开抢,每个微信号限定 50 鹅,50 蛋,手快挂单才有,手慢了又等明天哦 老玩家买到 DanDan 的先开好蛋房放蛋孵化,自己签到加温,发二维码让徒弟帮忙加温,(7 天,每天各一次),一个徒弟可加温 5 间蛋房 500 蛋。 老玩家买到 JiJi 的一定要及时加鹅放进农场,买足饲料,每天喂饱一次,不用徒弟帮忙。 (打开我的财界面所有操作有红色警示,红点消除那表示所有操作己完成)。 记录可查是否有饿鹅。每天记得喂鹅,忘了会饿坏鹅又要医治(麻烦),切记 二、只要和朋友分享“鹅贝贝”, 如下奖励属于你的! 1:成为徒弟(只要买鹅或蛋就成为徒弟啦) ①孵蛋卖鹅有钱赚, ②养鹅卖蛋有钱赚。 2:成为师傅:(扫你二维码的人买了鹅或蛋你就升级为师傅啦) ①徒弟卖鹅、卖蛋,交易额的 1%。 ②徒弟买道貝(饲料)10%。 3:成为师爷(徒弟、徒孙加起来有 300 人你就是师爷啦!) ①徒弟、徒孙交易额的 1%。 ②徒弟、徒孙们买道貝(饲料)5%。 4:成为盟主(你有 10 个徒弟成为师爷,你就是 3000 人以上团队的盟主) ①徒弟徒弟们交易额的 1%。 ②徒弟徒弟们买道具(饲料)2%。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值