String Char Data
Some examples of conversions between strings, char arrays and float data type.
#include <windows.h>
#include <sstream> // wstringstream wstring
void convertWStringToCharPtr(_In_ std::wstring input, _Out_ char * & outputString)
{
size_t outputSize = input.length() + 1; // +1 for null terminator 20
outputString = new char[outputSize];
size_t charsConverted = 0;
const wchar_t * inputW = input.c_str();
LPCWCHAR inputW2 = input.c_str();
wcstombs_s(&charsConverted, outputString, outputSize, inputW2, input.length());
// TODO verify charsConverted = outputSize
}
//---------------------------------------------------------------------------
//int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE,LPSTR lpCmdLine, int nCmdShow)
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow)
{
float x = 42.35f;
std::wstringstream s;
s << x << L"THis is a test" ;
std::wstring ws = s.str();//L"42.35THis is a test"
LPWSTR Caption = L"42.35THis is a test";
LPCWSTR Caption2 = L"42.35THis is a test";
LPWSTR Caption3 = const_cast<LPWSTR>(Caption2);
std::wstring ws2 = static_cast<std::wstring>(Caption);//L"42.35THis is a test"
char* outputString = NULL;
convertWStringToCharPtr(ws, outputString);
// outputString "42.35THis is a test" ws L"42.35THis is a test"
convertWStringToCharPtr(Caption, outputString);
// outputString "42.35THis is a test" Caption L"42.35THis is a test"
int a = sizeof(Caption);//4
int a2 = wcslen(Caption);//19
int b = sizeof(outputString);//4
int b2 = strlen(outputString);//19
// http://www.cplusplus.com/reference/cstdlib/strtod/
double vOut0 = strtod(outputString, NULL);//42.350000000000001
float vOut1 = (float)vOut0;//42.3499985
float vOut2 = atof(outputString);//42.3499985
//float vOut4 = _wtof(Caption);//42.3499985 It is wired, this line and the next line cannot be uncommented at the same time.
float vOut3 = _wtof(Caption3);//42.3499985
return FALSE;
}