نوع ارسال شما به خروجی هم مهمه، ویندوز در حالت عادی پنجره هایی را که توسط روتین
CreateWindowExW ایجاد می شوند را از نوع Unicode فرض می کند و پنجره هایی را که
توسط CreateWindowExA ایجاد شوند را ANSI فرض می کند. حالا این پنجره می تواند
مربوط به یک فرم باشد یا یک EditBox (همان TextBox) و یا هر کنترل دیگری.
اما این مساله فقط در مورد کنترلهایی مانند TextBox ها و خروجی کنسول کاربرد دارد و در حالت عادی
شما می توانید با توابعی مانند TextOutW هر متن Unicode را روی یک DC بفرستید.
اگر بخواهید بصورت مستقل و با استفاده از LoadLibrary و یا LoadLibraryEx اینکار را انجام دهید که هیچ،
ولی اگر می خواهید توابعی مانند TextOut بصورت خودکار به تابع اصلی Unicode (مثلا TextOutW) تبدیل شوند،
بایستی از UnicoWS.lib و UnicoWS.dll استفاده کنید.
یعنی شما بایستی UnicoWS.lib را به پروژه تان پیوست کنید.
و آنرا در اول برنامه فراخوانی کنید :
کد:
HMODULE LoadUnicowsProc(void)
{
return(LoadLibraryA("unicows.dll"));
}
اگر متن شما یک نوشته ثابت است، استفاده از توابعی که به W ختم می شوند کافیست ولی اگر قرار است،
متنی را از کاربر دریافت کنید یا یک متن Unicode را کاربر ویرایش نماید، آنگاه باید پنجره فرم و TextBox توسط
تابع Unicode ایجاد شده باشد.