锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产成人精品白浆久久69,欧美精品国产综合久久,久久国产精品一区二区http://www.shnenglu.com/85940806/Enhance Tech and Englishzh-cnSat, 28 Jun 2025 12:42:55 GMTSat, 28 Jun 2025 12:42:55 GMT60CreateProcesshttp://www.shnenglu.com/85940806/archive/2012/04/12/171107.htmlMike SongMike SongThu, 12 Apr 2012 08:59:00 GMThttp://www.shnenglu.com/85940806/archive/2012/04/12/171107.htmlhttp://www.shnenglu.com/85940806/comments/171107.htmlhttp://www.shnenglu.com/85940806/archive/2012/04/12/171107.html#Feedback0http://www.shnenglu.com/85940806/comments/commentRss/171107.htmlhttp://www.shnenglu.com/85940806/services/trackbacks/171107.html    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    si.cb = sizeof(STARTUPINFO);
    si.lpReserved = NULL;
    si.lpTitle = NULL;
    si.lpDesktop = NULL;
    si.dwX = si.dwY = si.dwYSize = si.dwXSize = 0;
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE;
    si.lpReserved2 = NULL;
    si.cbReserved2 = 0;

    BOOL ret = CreateProcess(strHostFileFullName, NULL, NULL, NULL, FALSE, 0, NULL, strPath, &si, &pi);
    if (!ret) {
        return false;
    }

    WaitForInputIdle(pi.hProcess, 30000);

    XXXCtxActivator activator;
    if(!activator.IsActivated())
        return false;

    CComPtr<IClassFactory> pFactory;
    HRESULT hr = CoGetClassObject(CLSID_XXX, CLSCTX_LOCAL_SERVER, NULL, __uuidof(pFactory), reinterpret_cast<void**>(&pFactory));
    if (FAILED(hr))
        return false;

    CComPtr<IXXX> s_spXXX;
    hr = pFactory->CreateInstance(NULL, __uuidof(*s_spXXX), reinterpret_cast<void**>(&s_spXXX));
    if(FAILED(hr))
        return false;
    
    // If created successfully, start the monitoring thread
    DWORD dwProcessId = GetCurrentProcessId();
    long nMonitoringPid = 0;

    hr = s_spXXX->StartProcessManagementThread(dwProcessId, &nMonitoringPid);    if (FAILED(hr) || nMonitoringPid == 0)
        return false;


Mike Song 2012-04-12 16:59 鍙戣〃璇勮
]]>
Why "The system cannot find the batch label specified" is thrown even if label exists?http://www.shnenglu.com/85940806/archive/2011/08/30/154716.htmlMike SongMike SongTue, 30 Aug 2011 09:27:00 GMThttp://www.shnenglu.com/85940806/archive/2011/08/30/154716.htmlhttp://www.shnenglu.com/85940806/comments/154716.htmlhttp://www.shnenglu.com/85940806/archive/2011/08/30/154716.html#Feedback0http://www.shnenglu.com/85940806/comments/commentRss/154716.htmlhttp://www.shnenglu.com/85940806/services/trackbacks/154716.htmlThis is caused by the different line endings after syncing from P4. The P4 client has settings for LineEnd, "local" will show CRLF, while "share" shows LF. This error maybe only existing in x86 machine.








This is tricky issue. Thanks very much for Jeffery's help.

Mike Song 2011-08-30 17:27 鍙戣〃璇勮
]]>
mutablehttp://www.shnenglu.com/85940806/archive/2011/06/23/149239.htmlMike SongMike SongThu, 23 Jun 2011 02:39:00 GMThttp://www.shnenglu.com/85940806/archive/2011/06/23/149239.htmlhttp://www.shnenglu.com/85940806/comments/149239.htmlhttp://www.shnenglu.com/85940806/archive/2011/06/23/149239.html#Feedback0http://www.shnenglu.com/85940806/comments/commentRss/149239.htmlhttp://www.shnenglu.com/85940806/services/trackbacks/149239.html
mutable鑻遍煶錛?mju:t蓹bl緹庨煶錛?mjut蓹b!錛屽艦瀹硅瘝錛屾剰涓烘槗鍙樼殑;鍙嶅鏃犲父鐨勩傚湪C++璇█涓紝鏄懡浠よ璦——濡傛灉涓涓嚱鏁拌const 淇グ錛岄偅涔堝畠灝嗘棤娉曚慨鏀瑰叾鎴愬憳鍙橀噺鐨勶紝浣嗘槸濡傛灉榪欎釜鎴愬憳鍙橀噺鏄mutable淇グ鐨勮瘽錛屽垯鍙互淇敼銆?/div>
mutable 鍙互鐢ㄦ潵鎸囧嚭錛屽嵆浣跨粨鏋勬垨鑰呯被鍙橀噺涓篶onst錛屽叾鏌愪釜鎴愬憳涔熷彲浠ヨ淇敼銆?

鍦╟++鐨勭被涓紝 濡傛灉涓涓嚱鏁拌const 淇グ錛岄偅涔堝畠灝嗘棤娉曚慨鏀瑰叾鎴愬憳鍙橀噺鐨勶紝浣嗘槸濡傛灉榪欎釜鎴愬憳鍙橀噺鏄mutable淇グ鐨勮瘽錛屽垯鍙互淇敼銆?/div>
渚嬪:
struct data
銆銆{
銆銆
char name[30];
銆銆mutable 
int accesses;
銆銆.
銆銆};
銆銆
const data veep = {"david";,0,}
銆銆strcpy(veep.name,
"Jimmy");// not allowed
銆銆veep.accesses++// allowed

銆veep 鐨刢onst闄愬畾絎︾姝㈢▼搴忎慨鏀箆eep鐨勬垚鍛橈紝浣哸ccess鎴愬憳鐨刴utable璇存槑絎﹁〃紺篴ccess涓嶅彈榪欑闄愬埗銆?/div>


Mike Song 2011-06-23 10:39 鍙戣〃璇勮
]]>Abstract Factoryhttp://www.shnenglu.com/85940806/archive/2011/06/11/148511.htmlMike SongMike SongSat, 11 Jun 2011 14:47:00 GMThttp://www.shnenglu.com/85940806/archive/2011/06/11/148511.htmlhttp://www.shnenglu.com/85940806/comments/148511.htmlhttp://www.shnenglu.com/85940806/archive/2011/06/11/148511.html#Feedback0http://www.shnenglu.com/85940806/comments/commentRss/148511.htmlhttp://www.shnenglu.com/85940806/services/trackbacks/148511.html闃呰鍏ㄦ枃

Mike Song 2011-06-11 22:47 鍙戣〃璇勮
]]>
Factory Methodhttp://www.shnenglu.com/85940806/archive/2011/06/11/148510.htmlMike SongMike SongSat, 11 Jun 2011 14:39:00 GMThttp://www.shnenglu.com/85940806/archive/2011/06/11/148510.htmlhttp://www.shnenglu.com/85940806/comments/148510.htmlhttp://www.shnenglu.com/85940806/archive/2011/06/11/148510.html#Feedback0http://www.shnenglu.com/85940806/comments/commentRss/148510.htmlhttp://www.shnenglu.com/85940806/services/trackbacks/148510.html
鍚嶇О Factory Method
緇撴瀯

鎰忓浘 瀹氫箟涓涓敤浜庡垱寤哄璞$殑鎺ュ彛錛岃瀛愮被鍐沖畾瀹炰緥鍖栧摢涓涓被銆侳actory Method 浣夸竴涓被鐨勫疄渚嬪寲寤惰繜鍒板叾瀛愮被銆?/td>
閫傜敤鎬?/td>
  • 褰撲竴涓被涓嶇煡閬撳畠鎵蹇呴』鍒涘緩鐨勫璞$殑綾葷殑鏃跺欍?
  • 褰撲竴涓被甯屾湜鐢卞畠鐨勫瓙綾繪潵鎸囧畾瀹冩墍鍒涘緩鐨勫璞$殑鏃跺欍?
  • 褰撶被灝嗗垱寤哄璞$殑鑱岃矗濮旀墭緇欏涓府鍔╁瓙綾諱腑鐨勬煇涓涓紝騫朵笖浣犲笇鏈涘皢鍝竴涓府鍔╁瓙綾繪槸浠g悊鑰呰繖涓淇℃伅灞閮ㄥ寲鐨勬椂鍊欍?





namespace FactoryMethod
{
  
public abstract class LightFactory
  {
    
public abstract Light CreateLight();
  }

  
public class BulbLightFactory : LightFactory
  {  
    
public override Light CreateLight()
    {
      
return new BulbLight();
    }
  }

  
public class TubeLightFactory : LightFactory
  {
      
public override Light CreateLight()
      {
        
return new TubeLight();
      }
  }
}

namespace FactoryMethod
{
  
public abstract class Light
  {
    
public abstract void TurnOn();
    
public abstract void TurnOff();
  }

  
public class BulbLight : Light
  {
    
public override void TurnOn()
    {
      Console.WriteLine(
"Bulb Ligh is Turned on.\n");
    }
    
public override void TurnOff()
    {
      Console.WriteLine(
"Bulb Ligh is Turned off.\n");
    }
  }

  
public class TubeLight : Light
  {
    
public override void TurnOn()
    {
      Console.WriteLine(
"Tube Ligh is Turned on.\n");
    }
    
public override void TurnOff()
    {
      Console.WriteLine(
"Tube Ligh is Turned off.\n");
    }
  }
}


namespace FactoryMethod
{
  
public class Client
  {
    
  
public static void Main()
    {
      LightFactory BulbFactory 
= new BulbLightFactory();
      LightFactory TubeFactory 
= new TubeLightFactory();

      Light l1 
= BulbFactory.CreateLight();
      Light l2 
= TubeFactory.CreateLight();

      l1.TurnOn();
      l1.TurnOff();

      Console.WriteLine(
"===============\n");

      l2.TurnOn();
      l2.TurnOff();
    }
  }
}


Mike Song 2011-06-11 22:39 鍙戣〃璇勮
]]>Observer http://www.shnenglu.com/85940806/archive/2011/06/11/148509.htmlMike SongMike SongSat, 11 Jun 2011 14:32:00 GMThttp://www.shnenglu.com/85940806/archive/2011/06/11/148509.htmlhttp://www.shnenglu.com/85940806/comments/148509.htmlhttp://www.shnenglu.com/85940806/archive/2011/06/11/148509.html#Feedback0http://www.shnenglu.com/85940806/comments/commentRss/148509.htmlhttp://www.shnenglu.com/85940806/services/trackbacks/148509.html鍚嶇О Observer 緇撴瀯 ...  闃呰鍏ㄦ枃

Mike Song 2011-06-11 22:32 鍙戣〃璇勮
]]>
15 - memchrhttp://www.shnenglu.com/85940806/archive/2011/06/11/148508.htmlMike SongMike SongSat, 11 Jun 2011 14:11:00 GMThttp://www.shnenglu.com/85940806/archive/2011/06/11/148508.htmlhttp://www.shnenglu.com/85940806/comments/148508.htmlhttp://www.shnenglu.com/85940806/archive/2011/06/11/148508.html#Feedback0http://www.shnenglu.com/85940806/comments/commentRss/148508.htmlhttp://www.shnenglu.com/85940806/services/trackbacks/148508.html/***
*char *memchr(buf, chr, cnt) - search memory for given character.
*
*Purpose:
*       Searches at buf for the given character, stopping when chr is
*       first found or cnt bytes have been searched through.
*
*Entry:
*       void *buf  - memory buffer to be searched
*       int chr    - character to search for
*       size_t cnt - max number of bytes to search
*
*Exit:
*       returns pointer to first occurence of chr in buf
*       returns NULL if chr not found in the first cnt bytes
*
*Exceptions:
*
******************************************************************************
*/

void * __cdecl memchr (
        
const void * buf,
        
int chr,
        size_t cnt
        )
{
        
while ( cnt && (*(unsigned char *)buf != (unsigned char)chr) ) {
                buf 
= (unsigned char *)buf + 1;
                cnt
--;
        }

        
return(cnt ? (void *)buf : NULL);
}


Mike Song 2011-06-11 22:11 鍙戣〃璇勮
]]>
14 - memcpy and memmove differencehttp://www.shnenglu.com/85940806/archive/2011/06/11/148507.htmlMike SongMike SongSat, 11 Jun 2011 14:09:00 GMThttp://www.shnenglu.com/85940806/archive/2011/06/11/148507.htmlhttp://www.shnenglu.com/85940806/comments/148507.htmlhttp://www.shnenglu.com/85940806/archive/2011/06/11/148507.html#Feedback0http://www.shnenglu.com/85940806/comments/commentRss/148507.htmlhttp://www.shnenglu.com/85940806/services/trackbacks/148507.html/***
*memmove - Copy source buffer to destination buffer
*
*Purpose:
*       memmove() copies a source memory buffer to a destination memory buffer.
*       This routine recognize overlapping buffers to avoid propogation.
*       For cases where propogation is not a problem, memcpy() can be used.
*
*Entry:
*       void *dst = pointer to destination buffer
*       const void *src = pointer to source buffer
*       size_t count = number of bytes to copy
*
*Exit:
*       Returns a pointer to the destination buffer
*
*Exceptions:
******************************************************************************
*/

void * __cdecl mymemcpy (
  
void * dst,
  
const void * src,
  size_t count
  )
{
  
void * ret = dst;
  
/*
  * copy from lower addresses to higher addresses
  
*/
  
while (count--) {
    
*(char *)dst = *(char *)src;
    dst 
= (char *)dst + 1;
    src 
= (char *)src + 1;
  }

  
return(ret);
}

void * __cdecl mymemmove (
  
void * dst,
  
const void * src,
  size_t count
  )
{
  
void * ret = dst;

  
if (dst <= src || (char *)dst >= ((char *)src + count)) {
    
/*
    * Non-Overlapping Buffers
    * copy from lower addresses to higher addresses
    
*/
    
while (count--) {
      
*(char *)dst = *(char *)src;
      dst 
= (char *)dst + 1;
      src 
= (char *)src + 1;
    }
  }
  
else {
    
/*
    * Overlapping Buffers
    * copy from higher addresses to lower addresses
    
*/
    dst 
= (char *)dst + count - 1;
    src 
= (char *)src + count - 1;

    
while (count--) {
      
*(char *)dst = *(char *)src;
      dst 
= (char *)dst - 1;
      src 
= (char *)src - 1;
    }
  }

  
return(ret);
}

int _tmain(int argc, _TCHAR* argv[])
{
  
int i = 0;
  
int a[10];

  
for(i; i < 10; i++)
  {
    a[i] 
= i;
  }

  mymemcpy(
&a[4], a, sizeof(int)*6);

  
for(i = 0; i < 10; i++)
  {
    printf(
"%d ",a[i]);
  }

  printf(
"\n");

  
for(i=0; i < 10; i++)
  {
    a[i] 
= i;
  }
  mymemmove(
&a[4], a, sizeof(int)*6);

  
for(i = 0; i < 10; i++)
  {
    printf(
"%d ",a[i]);
  }

  printf(
"\n");

    
return 0;
}


Result:
0 1 2 3 0 1 2 3 0 1
0 1 2 3 0 1 2 3 4 5



Mike Song 2011-06-11 22:09 鍙戣〃璇勮
]]>
13 - memmovehttp://www.shnenglu.com/85940806/archive/2011/06/11/148506.htmlMike SongMike SongSat, 11 Jun 2011 13:52:00 GMThttp://www.shnenglu.com/85940806/archive/2011/06/11/148506.htmlhttp://www.shnenglu.com/85940806/comments/148506.htmlhttp://www.shnenglu.com/85940806/archive/2011/06/11/148506.html#Feedback0http://www.shnenglu.com/85940806/comments/commentRss/148506.htmlhttp://www.shnenglu.com/85940806/services/trackbacks/148506.html/***
*memmove - Copy source buffer to destination buffer
*
*Purpose:
*       memmove() copies a source memory buffer to a destination memory buffer.
*       This routine recognize overlapping buffers to avoid propogation.
*       For cases where propogation is not a problem, memcpy() can be used.
*
*Entry:
*       void *dst = pointer to destination buffer
*       const void *src = pointer to source buffer
*       size_t count = number of bytes to copy
*
*Exit:
*       Returns a pointer to the destination buffer
*
*Exceptions:
******************************************************************************
*/

void * __cdecl memmove (
  
void * dst,
  
const void * src,
  size_t count
  )
{
  
void * ret = dst;

  
if (dst <= src || (char *)dst >= ((char *)src + count)) {
    
/*
    * Non-Overlapping Buffers
    * copy from lower addresses to higher addresses
    
*/
    
while (count--) {
      
*(char *)dst = *(char *)src;
      dst 
= (char *)dst + 1;
      src 
= (char *)src + 1;
    }
  }
  
else {
    
/*
    * Overlapping Buffers
    * copy from higher addresses to lower addresses
    
*/
    dst 
= (char *)dst + count - 1;
    src 
= (char *)src + count - 1;

    
while (count--) {
      
*(char *)dst = *(char *)src;
      dst 
= (char *)dst - 1;
      src 
= (char *)src - 1;
    }
  }

  
return(ret);
}


Mike Song 2011-06-11 21:52 鍙戣〃璇勮
]]>
12 - memset http://www.shnenglu.com/85940806/archive/2011/06/11/148505.htmlMike SongMike SongSat, 11 Jun 2011 13:32:00 GMThttp://www.shnenglu.com/85940806/archive/2011/06/11/148505.htmlhttp://www.shnenglu.com/85940806/comments/148505.htmlhttp://www.shnenglu.com/85940806/archive/2011/06/11/148505.html#Feedback0http://www.shnenglu.com/85940806/comments/commentRss/148505.htmlhttp://www.shnenglu.com/85940806/services/trackbacks/148505.html/***
*char *memset(dst, val, count) - sets "count" bytes at "dst" to "val"
*
*Purpose:
*       Sets the first "count" bytes of the memory starting
*       at "dst" to the character value "val".
*
*Entry:
*       void *dst - pointer to memory to fill with val
*       int val   - value to put in dst bytes
*       size_t count - number of bytes of dst to fill
*
*Exit:
*       returns dst, with filled bytes
*
*Exceptions:
*
******************************************************************************
*/

void * __cdecl memset (
  
void *dst,
  
int val,
  size_t count
  )
{
  
void *start = dst;

  
while (count--) {
    
*(char *)dst = (char)val;
    dst 
= (char *)dst + 1;

  
return(start);
}


Mike Song 2011-06-11 21:32 鍙戣〃璇勮
]]>
久久精品人人做人人爽电影蜜月| 久久99国产综合精品女同| 亚洲国产精品无码久久久蜜芽| 国产亚洲精午夜久久久久久 | 久久99精品久久久久久| 国产精品久久一区二区三区| 久久受www免费人成_看片中文| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 久久久久亚洲av无码专区导航| 国产国产成人久久精品| 亚洲级αV无码毛片久久精品| 国产精品18久久久久久vr| 色综合久久天天综线观看| 91精品无码久久久久久五月天| 亚洲va久久久噜噜噜久久男同| 久久精品国产亚洲沈樵| 中文字幕乱码久久午夜| 久久久久久久国产免费看| 久久久久久亚洲Av无码精品专口| 久久久久综合中文字幕| 亚洲国产成人久久综合野外| AV无码久久久久不卡蜜桃| 精品久久久久成人码免费动漫 | 久久久中文字幕| 91麻豆精品国产91久久久久久| 精品久久久中文字幕人妻 | a级成人毛片久久| 亚洲AV无码久久精品狠狠爱浪潮| 久久91精品国产91| 久久久久国产精品嫩草影院 | 精品久久久久久久久中文字幕| 久久国产劲爆AV内射—百度| 日本精品一区二区久久久| 久久强奷乱码老熟女网站| 亚洲国产精品婷婷久久| 青青国产成人久久91网| 国产成人精品久久一区二区三区av | 免费精品久久久久久中文字幕| 久久996热精品xxxx| 一本一道久久a久久精品综合 | 午夜精品久久久久久久无码|