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

隨筆-60  評(píng)論-111  文章-0  trackbacks-0
自己搞點(diǎn)小東西用的到。
在工程的根目錄里建一個(gè)svn目錄,然后在svn目錄里創(chuàng)建一個(gè)版本庫(kù),用svn檢出一下。
這樣這個(gè)工程就可以被svn管理了。
但是如果整個(gè)工程被移動(dòng)過了,那么svn就會(huì)出錯(cuò),于是寫了個(gè)小程序來重定位,從此可以把工程放在u盤帶著到處跑了。
  1 #include "stdafx.h"
  2 
  3 using namespace std;
  4 
  5 void AlertError(DWORD err)
  6 {
  7     LPVOID lpMsgBuf;
  8     LPVOID lpDisplayBuf;
  9     
 10     FormatMessage(
 11         FORMAT_MESSAGE_ALLOCATE_BUFFER | 
 12         FORMAT_MESSAGE_FROM_SYSTEM |
 13         FORMAT_MESSAGE_IGNORE_INSERTS,
 14         NULL,
 15         err,
 16         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
 17         (LPTSTR) &lpMsgBuf,
 18         0, NULL );
 19     
 20     lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT, 
 21         strlen((char*)lpMsgBuf) + 40); 
 22     sprintf((char*)lpDisplayBuf,"錯(cuò)誤碼: %d\n信 息: %s", err,lpMsgBuf);
 23     MessageBox(NULL, (LPCTSTR)lpDisplayBuf, "錯(cuò)誤", MB_OK|MB_ICONERROR); 
 24     
 25     LocalFree(lpMsgBuf);
 26     LocalFree(lpDisplayBuf);
 27 }
 28 
 29 void GetCommandOutput(char* CmdLine, string& strOutput, bool IncludeErr=false)
 30 {
 31     strOutput="";
 32     SECURITY_ATTRIBUTES  sa;
 33     HANDLE hRead, hWrite;
 34     memset(&sa,0,sizeof(sa));
 35     sa.nLength=sizeof(sa);
 36     sa.bInheritHandle=TRUE;
 37     sa.lpSecurityDescriptor=NULL;
 38     if(CreatePipe(&hRead,&hWrite,&sa,0))
 39     {
 40         STARTUPINFO si;
 41         memset(&si,0,sizeof(si));
 42         si.cb=sizeof(si);
 43         si.hStdOutput=hWrite;
 44         si.hStdInput=GetStdHandle(STD_INPUT_HANDLE);
 45         si.hStdError=(IncludeErr?hWrite:GetStdHandle(STD_ERROR_HANDLE));
 46         si.dwFlags=STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
 47         si.wShowWindow=SW_HIDE;
 48         
 49         PROCESS_INFORMATION pi;
 50         if(CreateProcess(NULL,CmdLine,&sa,&sa,TRUE,CREATE_NO_WINDOW|NORMAL_PRIORITY_CLASS,
 51             NULL,NULL,&si,&pi))
 52         {
 53             char szBuf[512];
 54             DWORD dwReaded;
 55             if(WaitForSingleObject(pi.hProcess,INFINITE)!=WAIT_TIMEOUT)
 56             {
 57                 CloseHandle(hWrite);
 58                 while(ReadFile(hRead,szBuf,511,&dwReaded,NULL))
 59                 {
 60                     szBuf[dwReaded]='\0';
 61                     strOutput+=szBuf;
 62                 }
 63             }
 64             else
 65             {
 66                 cout<<"WaitForSingleObject錯(cuò)誤;"<<endl;
 67                 CloseHandle(hWrite);
 68                 AlertError(GetLastError());
 69             }
 70             CloseHandle(pi.hThread);
 71             CloseHandle(pi.hProcess);
 72         }
 73         else
 74         {
 75             cout<<"建立進(jìn)程錯(cuò)誤;"<<endl;
 76             AlertError(GetLastError());
 77         }
 78         CloseHandle(hRead);
 79     }
 80     else
 81     {
 82         cout<<"建立管道錯(cuò)誤;"<<endl;
 83         AlertError(GetLastError());
 84     }
 85 }
 86 
 87 int APIENTRY WinMain(HINSTANCE hInstance,
 88                      HINSTANCE hPrevInstance,
 89                      LPSTR     lpCmdLine,
 90                      int       nCmdShow)
 91 {
 92     char szBuf[MAX_PATH+20];
 93     wchar_t wcBuf[MAX_PATH];
 94     int i, j;
 95     string msg;
 96     
 97     GetCommandOutput("svn info --xml",msg);
 98     TiXmlDocument *doc = new TiXmlDocument();
 99     doc->Parse(msg.c_str());
100     TiXmlNode *node;
101     node=doc->FirstChild("info");
102     if(node==NULL)
103     {
104         MessageBox(NULL,"當(dāng)前目錄沒有被SVN","結(jié)果",MB_OK|MB_ICONINFORMATION);
105         return 0;
106     }
107     node=node->FirstChild("entry");
108     if(node==NULL)
109     {
110         MessageBox(NULL,"當(dāng)前目錄沒有被SVN","結(jié)果",MB_OK|MB_ICONINFORMATION);
111         return 0;
112     }
113     node=node->FirstChild("wc-info");
114     if(node==NULL)
115     {
116         MessageBox(NULL,"當(dāng)前目錄沒有被SVN","結(jié)果",MB_OK|MB_ICONINFORMATION);
117         return 0;
118     }
119     node=node->FirstChild("wcroot-abspath");
120     if(node==NULL)
121     {
122         MessageBox(NULL,"當(dāng)前目錄沒有被SVN","結(jié)果",MB_OK|MB_ICONINFORMATION);
123         return 0;
124     }
125     strcpy(szBuf,node->ToElement()->GetText());
126     delete node;
127     delete doc;
128 
129     j=strlen(szBuf);
130     i=MultiByteToWideChar(CP_UTF8,0,szBuf,j,wcBuf,MAX_PATH);
131     wcBuf[i]=static_cast<wchar_t>(0);
132     strcpy(szBuf,"svn relocate file:///");
133     j=strlen(szBuf);
134     i=WideCharToMultiByte(CP_ACP,0,wcBuf,i,&szBuf[j],MAX_PATH,NULL,NULL);
135     szBuf[i+j]=static_cast<char>(0);
136     SetCurrentDirectory(&szBuf[j]);
137 
138     i+=j;
139     if((szBuf[i-1]=='\\')||(szBuf[i-1]=='/'))
140         strcat(szBuf,"svn/");
141     else
142         strcat(szBuf,"/svn/");
143     for(i=0,j=strlen(szBuf);i<j;i++)
144     {
145         if(szBuf[i]=='\\')
146             szBuf[i]='/';
147     }
148 
149     GetCommandOutput(szBuf,msg,true);
150     MessageBox(NULL,msg.c_str(),"結(jié)果",MB_OK);
151 
152     return 0;
153 }
posted on 2011-12-28 13:59 shaker(太子) 閱讀(1010) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧美视频一区| 欧美/亚洲一区| 娇妻被交换粗又大又硬视频欧美| 欧美视频导航| 欧美成人精品| 欧美日韩国产精品成人| 欧美视频日韩视频在线观看| 国产精品女人网站| 国产视频在线观看一区| 红桃视频成人| 亚洲最新中文字幕| 性欧美精品高清| 久久精品毛片| 亚洲高清视频的网址| 亚洲国产精品一区二区久| 亚洲韩国日本中文字幕| 99视频有精品| 久久精品国产清自在天天线| 麻豆精品91| 国产精品国产三级国产普通话三级 | 亚洲欧美自拍偷拍| 久久成人国产| 欧美福利视频在线观看| 日韩亚洲精品电影| 欧美一级午夜免费电影| 欧美成人影音| 国产精品日韩精品欧美精品| 亚洲激情网站| 先锋资源久久| 亚洲精品乱码久久久久久久久| 亚洲女优在线| 欧美日韩国产亚洲一区| 国产主播一区二区| 亚洲午夜国产一区99re久久| 巨胸喷奶水www久久久免费动漫| 亚洲免费黄色| 久久夜色精品一区| 国产日韩av一区二区| 一区二区三区不卡视频在线观看| 免费亚洲一区二区| 亚洲欧美在线视频观看| 欧美色欧美亚洲另类七区| 精品91视频| 久久精品人人做人人爽电影蜜月| 亚洲毛片在线| 欧美精品手机在线| 亚洲电影成人| 久色成人在线| 久久国产色av| 国内精品一区二区三区| 久久黄色网页| 午夜精品av| 国产欧美在线播放| 亚洲欧美在线免费观看| 亚洲精品久久久久久久久久久久久| 久久婷婷激情| 亚洲一区二区三区色| 亚洲国产精品t66y| 久久人人九九| 国产主播一区二区三区| 午夜视频在线观看一区| 一区二区三区国产精华| 欧美片在线观看| 亚洲日本在线观看| 亚洲精美视频| 欧美国产在线电影| 日韩视频中午一区| 亚洲人成免费| 欧美日韩国产不卡在线看| 亚洲伦理在线观看| 亚洲日本免费电影| 欧美美女视频| 亚洲欧美激情精品一区二区| 亚洲欧美日韩人成在线播放| 国产精品青草综合久久久久99| 亚洲视频久久| 亚洲欧美国产77777| 国产一区二区精品丝袜| 久久在线免费观看| 欧美大秀在线观看| 亚洲天堂网站在线观看视频| 亚洲在线电影| 悠悠资源网久久精品| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲日本中文字幕免费在线不卡| 欧美国产日本高清在线| 欧美国产日韩一区二区在线观看 | 欧美亚洲一区在线| 国内精品久久久久伊人av| 欧美高清在线精品一区| 欧美日韩一二三区| 久久久xxx| 欧美高清在线视频| 亚洲一区二区3| 久久久精品日韩| 正在播放日韩| 久久黄色网页| 一区二区三区高清不卡| 欧美一级视频| 日韩视频在线免费| 亚洲欧美综合网| 亚洲福利视频三区| 亚洲无限乱码一二三四麻| 亚洲国产免费看| 亚洲影院免费| 99riav久久精品riav| 欧美自拍偷拍午夜视频| 一区二区欧美国产| 蜜臀av性久久久久蜜臀aⅴ四虎| 免费欧美视频| 小嫩嫩精品导航| 亚洲人成网在线播放| 午夜电影亚洲| 99国产精品久久久久久久成人热| 欧美综合二区| 亚洲免费一区二区| 你懂的亚洲视频| 另类天堂av| 国产欧美日韩精品一区| 日韩午夜在线播放| 亚洲另类在线一区| 欧美aⅴ99久久黑人专区| 久久久精品五月天| 国产精品久久久久毛片软件| 日韩系列在线| 亚洲乱码国产乱码精品精可以看| 欧美一区二区视频免费观看| 亚洲欧美欧美一区二区三区| 欧美日韩亚洲视频一区| 亚洲欧洲日韩综合二区| 精品福利av| 久久久福利视频| 久久久伊人欧美| 国产日韩欧美中文| 一个色综合av| 亚洲欧美日韩精品在线| 国产精品h在线观看| av不卡在线观看| 亚洲综合激情| 国产精品v日韩精品| 日韩五码在线| 亚洲欧美日韩中文视频| 国产精品免费网站在线观看| 亚洲综合精品一区二区| 午夜精彩国产免费不卡不顿大片| 国产精品久久久久久久第一福利| 夜夜爽99久久国产综合精品女不卡 | 欧美亚州在线观看| 99在线|亚洲一区二区| 亚洲小视频在线| 国产精品久久久久久久久久直播| 一区二区三区黄色| 亚洲欧美另类在线观看| 国产日韩综合一区二区性色av| 欧美在线观看一区| 免费观看亚洲视频大全| 亚洲欧洲日产国码二区| 欧美欧美在线| 亚洲影院色在线观看免费| 久久深夜福利免费观看| 亚洲韩国一区二区三区| 欧美日韩国产丝袜另类| 亚洲免费在线观看视频| 久久伊人一区二区| 亚洲黄色天堂| 国产精品视频内| 久久亚洲图片| 亚洲精品国产精品国自产在线| 夜夜嗨av一区二区三区四区 | 国产精品日日摸夜夜摸av| 久久狠狠一本精品综合网| 亚洲国产精品ⅴa在线观看| 亚洲精品欧美极品| 亚洲靠逼com| 亚洲精品乱码久久久久久蜜桃91| 欧美日本韩国| 欧美中文字幕不卡| 亚洲黄一区二区| 欧美一区二区日韩| 亚洲精品视频在线观看免费| 国产女人精品视频| 欧美α欧美αv大片| 亚洲一区二区三区免费在线观看| 久久综合九色综合久99| 一区二区三区www| 精品不卡视频| 国产精品一区二区久久| 欧美96在线丨欧| 性做久久久久久久免费看| 亚洲精品免费一二三区| 另类专区欧美制服同性| 午夜视频一区二区| 亚洲美女视频在线观看| 国内精品免费午夜毛片| 欧美日韩亚洲激情| 欧美成人资源| 欧美成人69av| 美女网站在线免费欧美精品| 欧美一区成人| 亚洲欧美日韩成人高清在线一区|