亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? a_env.c

?? C標準庫源代碼,能提高對C的理解,不錯的哦
?? C
字號:
/***
*a_env.c - A version of GetEnvironmentStrings.
*
*       Copyright (c) 1993-1997, Microsoft Corporation.  All rights reserved.
*
*Purpose:
*       Use GetEnvironmentStringsW if available, otherwise use A version.
*
*******************************************************************************/

#include <cruntime.h>
#include <internal.h>
#include <stdlib.h>
#include <setlocal.h>
#include <awint.h>
#include <dbgint.h>

#define USE_W   1
#define USE_A   2

/***
*LPVOID __cdecl __crtGetEnvironmentStringsA - Get normal environment block
*
*Purpose:
*       Internal support function. Since GetEnvironmentStrings returns in OEM
*       and we want ANSI (note that GetEnvironmentVariable returns ANSI!) and
*       SetFileApistoAnsi() does not affect it, we have no choice but to
*       obtain the block in wide character and convert to ANSI.
*
*Entry:
*       VOID
*
*Exit:
*       LPVOID - pointer to environment block
*
*Exceptions:
*
*******************************************************************************/

LPVOID __cdecl __crtGetEnvironmentStringsA(
        VOID
        )
{
        static int f_use = 0;
        wchar_t *wEnv = NULL;
        wchar_t *wTmp;
        char *aEnv = NULL;
        char *aTmp;
        int nSizeW;
        int nSizeA;

        /*
         * Look for 'preferred' flavor. Otherwise use available flavor.
         * Must actually call the function to ensure it's not a stub.
         */

        if ( 0 == f_use )
        {
            if ( NULL != (wEnv = GetEnvironmentStringsW()) )
                f_use = USE_W;

            else if ( NULL != (aEnv = GetEnvironmentStringsA()) )
                f_use = USE_A;

            else
                return NULL;
        }

        /* Use "W" version */

        if (USE_W == f_use)
        {
            /* obtain wide environment block */
            if ( NULL == wEnv )
                if ( NULL == (wEnv = GetEnvironmentStringsW()) )
                    return NULL;

            /* look for double null that indicates end of block */
            wTmp = wEnv;
            while ( *wTmp != L'\0' ) {
                if ( *++wTmp == L'\0' )
                    wTmp++;
            }

            /* calculate total size of block, including all nulls */
            nSizeW = wTmp - wEnv + 1;

            /* find out how much space needed for multi-byte environment */
            nSizeA = WideCharToMultiByte(   CP_ACP,
                                            0,
                                            wEnv,
                                            nSizeW,
                                            NULL,
                                            0,
                                            NULL,
                                            NULL );

            /* allocate space for multi-byte string */
            if ( (nSizeA == 0) ||
                 ((aEnv = (char *)_malloc_crt(nSizeA)) == NULL) )
            {
                FreeEnvironmentStringsW( wEnv );
                return NULL;
            }

            /* do the conversion */
            if ( !WideCharToMultiByte(  CP_ACP,
                                        0,
                                        wEnv,
                                        nSizeW,
                                        aEnv,
                                        nSizeA,
                                        NULL,
                                        NULL ) )
            {
                _free_crt( aEnv );
                aEnv = NULL;
            }

            FreeEnvironmentStringsW( wEnv );
            return aEnv;
        }

        /* Use "A" version */

        if ( USE_A == f_use )
        {
            if ( NULL == aEnv )
                if ( NULL == (aEnv = GetEnvironmentStringsA()) )
                    return NULL;

            /* determine how big a buffer is needed */

            aTmp = aEnv;

            while ( *aTmp != '\0' ) {
                if ( *++aTmp == '\0' )
                    aTmp++;
            }

            nSizeA = aTmp - aEnv + 1;

            if ( NULL == (aTmp = _malloc_crt( nSizeA )) ) {
                FreeEnvironmentStringsA( aEnv );
                return NULL;
            }

            memcpy( aTmp, aEnv, nSizeA );

            FreeEnvironmentStringsA( aEnv );

            return aTmp;
        }

        return NULL;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区免费| 亚洲成av人片在线观看无码| 国产盗摄一区二区| 亚洲一区二区三区影院| 国产欧美日韩一区二区三区在线观看| 菠萝蜜视频在线观看一区| 亚洲一区免费观看| 亚洲图片激情小说| 国产日韩欧美不卡在线| 欧美一级爆毛片| 欧美在线一二三| 99在线热播精品免费| 青青草国产精品亚洲专区无| 亚洲一区影音先锋| 夜色激情一区二区| 一区二区三区资源| 一区二区三区日韩欧美精品| 成人欧美一区二区三区白人| 国产精品女同互慰在线看| 国产亚洲欧美日韩俺去了| 亚洲精品一线二线三线无人区| 欧美日本韩国一区| 欧美一区二区三区人| 欧美日本在线播放| 欧美一区二区网站| 欧美日本不卡视频| 日韩一卡二卡三卡四卡| 日韩欧美综合一区| 26uuu国产在线精品一区二区| 欧美午夜在线一二页| 欧美日韩国产小视频在线观看| 91麻豆精品秘密| 在线观看91精品国产入口| 欧美日韩国产精选| 91精品免费在线| 欧美精品一区二区三区蜜臀| 日韩免费一区二区| 久久精品人人做人人爽人人| 国产精品免费av| 亚洲精品老司机| 婷婷丁香久久五月婷婷| 裸体一区二区三区| 国产成人精品aa毛片| 99re热这里只有精品视频| 91国偷自产一区二区使用方法| 欧美日韩国产另类一区| 日韩精品中文字幕在线不卡尤物| 国产亚洲精品aa| 综合色天天鬼久久鬼色| 日韩在线卡一卡二| 精品一区二区综合| 91免费在线视频观看| 欧美日韩五月天| 中文字幕国产一区二区| 亚洲激情图片小说视频| 久久狠狠亚洲综合| 91视视频在线观看入口直接观看www | 欧美大片国产精品| 久久久久久久久免费| 亚洲精品欧美综合四区| 极品瑜伽女神91| 色综合天天狠狠| 精品国产不卡一区二区三区| 亚洲男人的天堂av| 国产原创一区二区三区| 成人美女视频在线观看| 欧美特级限制片免费在线观看| 日韩美一区二区三区| 一区二区三区免费| 99久久精品国产网站| 国产日韩欧美精品综合| 国产精品一级黄| 久久精品亚洲麻豆av一区二区| 日韩精品视频网| 欧美日韩精品欧美日韩精品一| 亚洲黄色免费电影| 欧美在线观看一二区| 综合中文字幕亚洲| 欧美性高清videossexo| 亚洲午夜一二三区视频| 欧美在线色视频| 日本美女一区二区三区| 日韩情涩欧美日韩视频| 精品一区二区在线播放| 久久综合九色综合欧美98| 激情综合网激情| 久久久99精品久久| www.亚洲色图| 一区二区三区国产精品| 精品视频一区三区九区| 石原莉奈一区二区三区在线观看| 欧美日韩一级视频| 日韩国产精品大片| 久久久五月婷婷| av中文字幕不卡| 亚洲一区二区成人在线观看| 欧美日韩国产综合一区二区 | 亚洲愉拍自拍另类高清精品| k8久久久一区二区三区| 一片黄亚洲嫩模| 欧美日韩午夜在线| 国产一区二区三区蝌蚪| 中文字幕亚洲一区二区av在线| www.在线欧美| 日韩经典一区二区| 26uuuu精品一区二区| 99riav久久精品riav| 日韩电影在线免费| 久久久久一区二区三区四区| 91一区二区在线观看| 婷婷六月综合亚洲| 中文在线一区二区| 欧美人牲a欧美精品| 国产精品91一区二区| 午夜a成v人精品| 成人欧美一区二区三区1314| 欧美电视剧免费观看| 91黄视频在线观看| 国产一区二区三区国产| 香蕉成人啪国产精品视频综合网| 久久精品一级爱片| 欧美日本高清视频在线观看| 成人avav在线| 日韩av一区二区三区四区| 国产精品久久久久婷婷 | 国产精品亚洲第一区在线暖暖韩国| 久久天天做天天爱综合色| 99久久精品国产观看| 蜜桃视频在线观看一区| 亚洲精品老司机| 国产精品蜜臀在线观看| 欧美成人aa大片| 欧美日韩在线精品一区二区三区激情 | 中文字幕欧美一| 欧美一区二区人人喊爽| 欧美曰成人黄网| 高潮精品一区videoshd| 蜜桃av一区二区三区电影| 亚洲国产精品久久久久秋霞影院| 中文字幕av一区二区三区高| 精品国产百合女同互慰| 日韩免费一区二区| 欧美一区二区在线播放| 91精品国产综合久久精品| 欧美亚洲国产怡红院影院| 在线影视一区二区三区| 色综合久久综合网97色综合| 91亚洲精品久久久蜜桃| eeuss鲁一区二区三区| 国产91精品在线观看| 国产一区二区三区国产| 国产99久久精品| 精品中文av资源站在线观看| 久久97超碰国产精品超碰| 麻豆精品精品国产自在97香蕉| 免费视频最近日韩| 日韩电影在线免费| 九九九精品视频| 久久69国产一区二区蜜臀| 激情综合一区二区三区| 国产成人午夜视频| 成人小视频免费在线观看| 国产精品99久久久久久有的能看| 国产剧情一区二区| jlzzjlzz国产精品久久| av一本久道久久综合久久鬼色| caoporn国产精品| 在线一区二区视频| 欧美日韩国产三级| 精品三级av在线| 国产日本亚洲高清| 国产精品麻豆网站| 亚洲综合免费观看高清完整版| 亚洲va韩国va欧美va| 久久国产福利国产秒拍| 国产真实乱子伦精品视频| 亚洲444eee在线观看| 免费av网站大全久久| 蜜桃视频一区二区| 国产剧情一区在线| 久久国产精品99精品国产| 美女精品一区二区| 波多野结衣在线一区| 99久久夜色精品国产网站| kk眼镜猥琐国模调教系列一区二区| 一本色道a无线码一区v| 日韩欧美在线1卡| 国产精品免费网站在线观看| 日韩精品视频网站| 本田岬高潮一区二区三区| 欧美视频一区二区三区| 久久人人超碰精品| 一区二区三区影院| 韩日av一区二区| 欧美特级限制片免费在线观看| 2023国产一二三区日本精品2022| 亚洲一级二级在线| 成人免费高清视频| 日韩亚洲国产中文字幕欧美| 亚洲欧美日韩在线|