📄 mbtowenv.c
字号:
/***
*mbtowenv.c - convert multibyte environment block to wide
*
* Copyright (c) 1993-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
* defines __mbtow_environ(). Create a wide character equivalent of
* an existing multibyte environment block.
*
*******************************************************************************/
#include <windows.h>
#include <cruntime.h>
#include <internal.h>
#include <stdlib.h>
#include <dbgint.h>
/***
*__mbtow_environ - copy multibyte environment block to wide environment block
*
*Purpose:
* Create a wide character equivalent of an existing multibyte
* environment block.
*
*Entry:
* Assume _environ (global pointer) points to existing multibyte
* environment block.
*
*Exit:
* If success, every multibyte environment variable has been added to
* the wide environment block and returns 0.
* If failure, returns -1.
*
*Exceptions:
* If space cannot be allocated, returns -1.
*
*******************************************************************************/
int __cdecl __mbtow_environ (
void
)
{
int size;
wchar_t *wenvp;
char **envp = _environ;
/*
* For every environment variable in the multibyte environment,
* convert it and add it to the wide environment.
*/
while (*envp)
{
/* find out how much space is needed */
if ((size = MultiByteToWideChar(CP_OEMCP, 0, *envp, -1, NULL, 0)) == 0)
return -1;
/* allocate space for variable */
if ((wenvp = (wchar_t *) _malloc_crt(size * sizeof(wchar_t))) == NULL)
return -1;
/* convert it */
if ((size = MultiByteToWideChar(CP_OEMCP, 0, *envp, -1, wenvp, size)) == 0)
return -1;
/* set it - this is not primary call, so set primary == 0 */
__crtwsetenv(wenvp, 0);
envp++;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -