锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品国产乱码久久久久软件,99久久精品免费看国产,久久无码人妻一区二区三区午夜http://www.shnenglu.com/85940806/Enhance Tech and Englishzh-cnSat, 28 Jun 2025 18:52:20 GMTSat, 28 Jun 2025 18:52:20 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 淇グ錛岄偅涔堝畠?yōu)畣鏃犳硶淇敼鍏舵垚鍛樺彉閲忕殑锛屼絾鏄鏋湗q欎釜鎴愬憳鍙橀噺鏄mutable淇グ鐨勮瘽錛屽垯鍙互淇敼銆?/div>
mutable 鍙互鐢ㄦ潵鎸囧嚭錛屽嵆浣跨粨鏋勬垨鑰呯被鍙橀噺涓篶onst錛屽叾鏌愪釜鎴愬憳涔熷彲浠ヨ淇敼銆?

鍦╟++鐨勭被涓紝 濡傛灉涓涓嚱鏁拌const 淇グ錛岄偅涔堝畠?yōu)畣鏃犳硶淇敼鍏舵垚鍛樺彉閲忕殑锛屼絾鏄鏋湗q欎釜鎴愬憳鍙橀噺鏄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 鍙戣〃璇勮
]]>
国产免费久久精品99re丫y| 久久久久AV综合网成人 | 午夜精品久久影院蜜桃| 婷婷久久综合| 色综合久久久久无码专区| 久久99国产精品99久久 | 久久无码AV一区二区三区| 久久精品中文騷妇女内射| 久久精品国产99国产精品| 人妻久久久一区二区三区| 国产99久久九九精品无码| 久久精品青青草原伊人| 精品欧美一区二区三区久久久 | 久久精品亚洲乱码伦伦中文| 亚洲AV日韩精品久久久久| 日韩久久久久中文字幕人妻| 久久久久国产一级毛片高清版| 欧美与黑人午夜性猛交久久久| 国产精品国色综合久久| 99久久综合国产精品免费| 国产一区二区三精品久久久无广告| 久久精品国产男包| 久久综合欧美成人| 国产精品美女久久福利网站| 国产成人精品久久一区二区三区av| 日韩精品久久久肉伦网站| 久久久久亚洲AV成人网人人网站| 国产精品成人久久久久三级午夜电影 | 性欧美丰满熟妇XXXX性久久久| 久久九九久精品国产| 91久久成人免费| 超级碰久久免费公开视频| 久久精品一区二区| 久久久久国产一级毛片高清版| 国产精品久久久久9999| 国产精品久久久久影院嫩草| 久久久久人妻一区二区三区vr| 久久精品国产亚洲AV无码麻豆| 久久99久久99精品免视看动漫| 国产精品对白刺激久久久| 久久中文娱乐网|