نشان دادن زبان فارسی در خروجی (++c)

dahdash

New Member
اگر بخواهیم یه string به زبان فارسی داشته باشیم که توی خروجی برنامه قابل دیدن باشه باید چیکار کنیم؟
تو MSDN گفته به جای char از wchar_t استفاده کنید ولی من نتونستم تو خروجی برنامه، فارسی ببینم.
 

the_king

مدیرکل انجمن
نوع ارسال شما به خروجی هم مهمه، ویندوز در حالت عادی پنجره هایی را که توسط روتین
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 ایجاد شده باشد.
 

جدیدترین ارسال ها

بالا