use the WideCharToMultiByte() method to convert a multibyte character.
Here is an example conversion from LPWSTR to char * or a wide character character.
#include <stdio.h> #include <windows.h> void LPWSTR_2_CHAR(LPWSTR,LPSTR,size_t); int main(void) { wchar_t w_char_str[] = {L"This is wide character string test!"}; size_t w_len = wcslen(w_char_str); char char_str[w_len + 1]; memset(char_str,'\0',w_len * sizeof(char)); LPWSTR_2_CHAR(w_char_str,char_str,w_len); puts(char_str); return 0; } void LPWSTR_2_CHAR(LPWSTR in_char,LPSTR out_char,size_t str_len) { WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,in_char,-1,out_char,str_len,NULL,NULL); }
source share