Reputation: 1895
Say you have "methods"
int Read(...)
{
unsigned char Byte = 0;
if(!ReadFile(.., &byte, 1,...))
return -1;
return Byte;
}
int ReadBlock(LPWSTR buffer, int cchBuffer ...)
{
int c = 0;
int cnt = 0;
do
{
if( (c=Read(...)) != -1 )
buffer[num++] = c; // Here.
} while( num < ccBuffer );
return cnt;
}
What is the proper way to get that int correctly to WCHAR?
Upvotes: 2
Views: 4776
Reputation: 1895
After reading When should static_cast, dynamic_cast and reinterpret_cast be used?, I realize it was my lack of knowledge about casting that triggered me to ask this question.
Upvotes: 0
Reputation: 179917
Use mbstowcs
(multibyte string to wide character string) :
int ReadBlock(LPWSTR buffer, int cchBuffer ...)
{
int c = 0;
std::vector<char> narrow;
while((c=Read(...)) != -1 )
narrow.push_back(c);
}
narrow.push_back(0);
mbstowcs(buffer, &narrow.front(), cchBuffer);
}
mbstowcs
uses the current locale, so that should match the encoding of your input.
Upvotes: 2
Reputation: 30
convert char <= => wchar
in windows:
MultiByteToWideChar
WideCharToMultiByte
in linux:
mbsrtowcs
wcsrtombs
Upvotes: 1
Reputation: 8587
#include<tchar.h>
int main()
{
int integer = 0;
wchar_t wideCharacter = (wchar_t)integer;
return 0;
}
Upvotes: 0