[VC]char 和 wchar_t相互转化

  1. #include <windows.h>

  2. #include <stdio.h>
  3. //function: charTowchar

  4. //purpose:char to WCHAR 、wchar_t、LPWSTR etc

  5. void charTowchar(const
    char *chr, wchar_t *wchar,
    int size)

  6. {

  7. MultiByteToWideChar( CP_ACP, 0, chr,

  8. strlen(chr)+1,
    wchar, size/sizeof(wchar[0]) );

  9. }
  10. //function: wcharTochar

  11. //purpose:WCHAR 、wchar_t、LPWSTR to char

  12. void wcharTochar(const
    wchar_t *wchar, char *chr,
    int length)

  13. {

  14. WideCharToMultiByte( CP_ACP, 0, wchar, -1,

  15. chr, length, NULL,
    NULL );

  16. }
  17. int main (void)

  18. {

  19. char     
    chr[128];

  20. wchar_t   *wchar
    = L"陈鸿钦";
  21. //wchar_t to char

  22. wcharTochar(wchar, chr,
    sizeof(chr));

  23. printf("char is %s\n", chr);
  24. //char to wchar_t

  25. wchar = (wchar_t
    *)malloc(sizeof(wchar_t) * 64);

  26. charTowchar(chr, wchar,
    sizeof(wchar_t) * 64);
  27. wprintf_s(L"%s\n", wchar);//

  28. getchar();
  29. return 0;

  30. }
  31. Requirements: Ws2_32.lib

[VC]char 和 wchar_t相互转化,布布扣,bubuko.com

时间: 2024-10-01 00:22:02

[VC]char 和 wchar_t相互转化的相关文章

char* 和 wchar_t* 如何互相转换

char* 和 wchar_t* 如何互相转换 C函数可以用 wcstombs - 将宽字符转换成多字符 WCHAR ->  CHAR mbstowcs - 把多字符把转换成宽字符 CHAR ->WCHAR char *szSour = "Have a Try"; WCHAR Temp[128] = {0}; mbstowcs(Temp,szSour,strlen(szSour)); wprintf(L"%ls",Temp); 要在windows下面可以

PInvoke复习之深入理解char*与wchar_t*与string以及wstring之间的相互转换

本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下  #ifndef USE_H_       #define USE_H_       #include <iostream>       #include <windows.h>       #include <string>       using namespace std;       class CUser       {  

深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换 [转]

本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下. 1 #ifndef USE_H_ 2 #define USE_H_ 3 4 #include <iostream> 5 #include <windows.h> 6 #include <string> 7 using namespace std; 8 class CUser 9 { 10 public: 11 CUser(); 12

char与TCHAR相互转化

char与TCHAR相互转化 char strUsr[10] = "Hello"; TCHAR Name[100]; #ifdef UNICODE MultiByteToWideChar(CP_ACP, 0, strUsr, -1, Name, 100); #else strcpy(Name, strUsr); #endif TCHAR转char char* ConvertLPWSTRToLPSTR (LPWSTR lpwszStrIn) { LPSTR pszOut = NULL;

自己写实现char TO wchar_t 的转换

wchar_t CharToWChart(char nChar){    wchar_t nR;    nR=nChar+32*256;    return nR;}//---------------------------------------------------------------------------wchar_t  CharToWChart(char nChar0,char nChar1){    wchar_t nR;    nR=(256+nChar0)*256+(256

C++ 数据库 char 转 wchar_t SQLWCHAR

C++中对数据库的操作感觉太复杂了,不如C#好使,但最近出于某些原因还是学习了一下C++下操作数据库的方法. 如果要想用C++实现对数据库的操作其实很简单,但是如果你需要动态的操作数据库(比如获得用户输入的数据后存入数据库)那么就麻烦一下,因为SQLExecDirect()这个函数接收的SQL语句需要是SQLWCHAR *格式的,并不是char *格式!所以要将普通的char *转换成SQLWCHAR * 这里说明一下,SQLWCHAR 和 wchar_t是一个东西!如果你用的是Visual S

linux 下 Linux 下char转换为wchar_t

LInux下使用mbstowcs函数可以将char转化为wchar_t函数含义:convert a multibyte string to a wide char string说明:       The behaviour of mbstowcs depends on the LC_CTYPE category of the current locale返回值:   The  mbstowcs() function returns the number of wide characters th

char 转wchar_t 及wchar_t转char

利用WideCharToMultiByte函数来转换,该函数映射一个unicode字符串到一个多字节字符串.通常适合于window平台上使用. #include <tchar.h> #include <windows.h> int _tmain(int argc, _tchar* argv[]) { wchar_t pwstr[] =l"我是中国人"; wchar_t pwstr2[20]; char *pcstr = (char *)malloc(sizeof

VC++:char*或string转换成LPCWSTR

Visual Studio 2010默认是Unicode的,在VC 6.0中编译成功的项目在VS2010中常会出现类型错误. 经常出现的错误是:不能从const char *转换为LPCWSTR 如使用CreateDC("DISPLAY",NULL,NULL,NULL)就会报错,如果使用强制转换(LPCWSTR)"DISPLAY",虽然能够通过,但是编码会出错. 可行的办法是使用 TEXT("DISPLAY")转换, CreateDC(TEXT(