首页 > 代码库 > 工作笔记(一)

工作笔记(一)

1.The GetCurrentDirectory function retrieves the current directory for the current process

 DWORD GetCurrentDirectory(  DWORD nBufferLength,  // size of directory buffer
  LPTSTR lpBuffer       // directory buffer);

用法:

 TCHAR tszModule[MAX_PATH ] = { 0 };
 ::GetCurrentDirectory(MAX_PATH, tszModule);

2.The GetModuleFileName function retrieves the fully qualified path for the specified module.

DWORD GetModuleFileName(  HMODULE hModule,    // handle to module
  LPTSTR lpFilename,  // path buffer  DWORD nSize         // size of buffer);

用法:

TCHAR tszModule[MAX_PATH + 1] = { 0 };
::GetModuleFileName(NULL, tszModule, MAX_PATH);

3. 

(1) char* 转到 wchar*

The MultiByteToWideChar function maps a character string to a wide-character (Unicode) string. The character string mapped by this function is not necessarily from a multibyte character set.

int MultiByteToWideChar(  UINT CodePage,         // code page
  DWORD dwFlags,         // character-type options
  LPCSTR lpMultiByteStr, // string to map
  int cbMultiByte,       // number of bytes in string
  LPWSTR lpWideCharStr,  // wide-character buffer
  int cchWideChar        // size of buffer);

用法:

#define MAX_PATH          260

::MultiByteToWideChar(CP_ACP,0,(const char *)CStr,-1,tszModule,MAX_PATH);

CStr将被转换字符串的字符

-1指的是CStr以空字符终止

tszModule 指向接收被转换字符串的缓冲区

MAX_PATH 指向的缓冲区的宽字符个数

(2) wchar* 转 到 char*

  TCHAR tszModule[MAX_PATH ] = { 0 };
   ::GetCurrentDirectory(MAX_PATH, tszModule);

   size_t len = wcslen(tszModule) + 1;
   size_t converted = 0;
   char CStr[MAX_PATH];
   wcstombs_s(&converted, CStr, len, tszModule, _TRUNCATE);