I see you're using Irrlicht; a quick Google for "Irrlicht and wchar_t" turned up the mbstowcs function. Here's a quick question: do you really only want to pass a single character to your DEMOText function (that's what you're doing), rather than a string? Since I doubt you do, following is an improved version that should do what you want.
#include <cstdio>
#include <cstdlib>
IGUIStaticText* DLL_EXPORT DEMOText(char const* Text,
int iX,
int iY,
int iWidth,
int iHeight,
bool boBorder)
{
size_t alloc_len = strlen(Text) + 1;
wchar_t* wc_out = new wchar_t[alloc_len];
size_t result = mbstowcs(wc_out, Text, alloc_len);
IGUIStaticText* ret_val = 0;
if (result > 0)
{
ret_val = guienv->addStaticText(Text,
rect< int >(iX, iY, iX + iWidth, iY + iHeight),
boBorder);
}
delete[] wc_out;
return ret_val;
}
The irrclicht string implementation already has support for converting between both formats I think (char* and w_char*), I tried to assign some values between stringw and stringc and it works fine! :) The mbstowcs could be helpful for unique char operations.
Thanks for jumping in! I've never used Irrlicht on a regular basis, and wasn't aware of its string class.
IGUIStaticText* DLL_EXPORT DEMOText(char const* Text,
int iX,
int iY,
int iWidth,
int iHeight,
bool boBorder)
{
core::stringw wc_text(Text);
return guienv->addStaticText(wc_text.c_str(),
rect< int >(iX, iY, iX + iWidth, iY + iHeight),
boBorder);
}