# Unicode in C11?

**URL:** <https://clarionhub.com/t/unicode-in-c11/7114>\
**Category:** questions\
**Tags:** c11, unicode\
**Created:** [April 19, 2024, 6:02am UTC](https://clarionhub.com/t/unicode-in-c11/7114 "2024-04-19T06:02:03Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Daniel1](https://clarionhub.com/letter_avatar_proxy/v4/letter/d/b19c9b/32.png) [@Daniel1](https://clarionhub.com/u/Daniel1)\
**Post date:** [April 19, 2024, 6:02am UTC](https://clarionhub.com/t/unicode-in-c11/7114/1 "2024-04-19T06:02:03Z")

</div>

Hello All  
just saw this one:  
[Clarion 11 - new Unicode implementation](https://clarionsharp.com/blog/clarion-11-new-unicode-implementation/)  
I don't have this "Encoding" settings in my C11.1.13855 version.  
Do you see them?

---

<div class="post-metadata">

**Author:** ![anon77170705](https://clarionhub.com/letter_avatar_proxy/v4/letter/a/ecccb3/32.png) [@anon77170705](https://clarionhub.com/u/anon77170705)\
**Post date:** [April 19, 2024, 12:06pm UTC](https://clarionhub.com/t/unicode-in-c11/7114/2 "2024-04-19T12:06:31Z")

</div>

The new implementation of the compiler and the RTL with the new internationalization support, the native support of 64-bit integers and Unicode string types, etc. was assumed to be in C11. But plans were changed later and C11 was released with support of AnyScreen.

---

<div class="post-metadata">

**Author:** ![CarlosGtrz](https://clarionhub.com/user_avatar/clarionhub.com/carlosgtrz/32/5870_2.png) [@CarlosGtrz](https://clarionhub.com/u/CarlosGtrz)\
**Post date:** [May 13, 2024, 4:33pm UTC](https://clarionhub.com/t/unicode-in-c11/7114/3 "2024-05-13T16:33:39Z")

</div>

Here’s a good article about Unicode:

> **[The Absolute Minimum Every Software Developer Must Know About Unicode in 2023...](https://tonsky.me/blog/unicode/)**
>
> Modern extension to classic 2003 article by Joel Spolsky

(not an answer to this question but didn’t want to start a new thread).

---

<div class="post-metadata">

**Author:** ![CarlBarnes](https://clarionhub.com/user_avatar/clarionhub.com/carlbarnes/32/1859_2.png) [@CarlBarnes](https://clarionhub.com/u/CarlBarnes)\
**Post date:** [May 13, 2024, 4:54pm UTC](https://clarionhub.com/t/unicode-in-c11/7114/4 "2024-05-13T16:54:52Z")

</div>

All new API’s Microsoft added since Windows Vista are Unicode only i.e. there is no “A” wrapper functions that take ANSI strings.

Adding Unicode to Clarion will make it easy write the code to call these. An example is the new [Task Dialog](https://learn.microsoft.com/en-us/windows/win32/controls/task-dialogs) that is the replacement for the Message Box.

So even if you write software only for English only Unicode strings are needed. It also seems fun to have access to the enormous character sets of symbols, emojis and glyphs that can be used like icons.

---

<div class="post-metadata">

**Author:** ![anon77170705](https://clarionhub.com/letter_avatar_proxy/v4/letter/a/ecccb3/32.png) [@anon77170705](https://clarionhub.com/u/anon77170705)\
**Post date:** [May 13, 2024, 5:46pm UTC](https://clarionhub.com/t/unicode-in-c11/7114/5 "2024-05-13T17:46:57Z")

</div>

> [@CarlBarnes](#):
>
> Adding Unicode to Clarion will make it easy write the code to call these. An example is the new [Task Dialog](https://learn.microsoft.com/en-us/windows/win32/controls/task-dialogs)[image] that is the replacement for the Message Box.

Clarion MESSAGE invokes the DialogBoxIndirectParam function and passes the DLGTEMPLATE structure built from function’s parameters to this call. This structure requires Unicode strings.

Really, there is no problem with Unicode in MESSAGE. The problem is to have this functions usable - unlikely someone wants to use, say, 20 parameters or prepare some complex structures if in 99% cases 1-2 parameters are enough. MESSAGE is quite balanced from this point of view,

In any case, Clarion not denies to use API calls from programs.

---

<div class="post-metadata">

**Author:** ![CarlBarnes](https://clarionhub.com/user_avatar/clarionhub.com/carlbarnes/32/1859_2.png) [@CarlBarnes](https://clarionhub.com/u/CarlBarnes)\
**Post date:** [May 14, 2024, 9:18pm UTC](https://clarionhub.com/t/unicode-in-c11/7114/6 "2024-05-14T21:18:25Z")

</div>

> [@anon77170705](#):
>
> Really, there is no problem with Unicode in MESSAGE.

I agree. The API [MessageBoxW()](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messageboxw) is perfect for trying Unicode strings.

> [@anon77170705](#):
>
> The problem is to have this functions usable - unlikely someone wants to use, say, 20 parameters or prepare some complex structures

The [TaskDialogIndirect()](https://learn.microsoft.com/en-us/windows/win32/api/commctrl/nf-commctrl-taskdialogindirect) has all the cool features. The TD “Message” can have a Checkbox, Radios, Command Buttons, Hyperlinks, Expandable Text, more … Those require the 24 field [TaskDialogConfig](https://learn.microsoft.com/en-us/windows/win32/api/commctrl/ns-commctrl-taskdialogconfig) structure and array of [TaskDialog\_Button](https://learn.microsoft.com/en-us/windows/win32/api/commctrl/ns-commctrl-taskdialog_button) with many Unicode wide strings.

The Task Dialog seems unusual for a Microsoft API that it seems to have everything anyone could think of, like it’s from CapeSoft. I created the below LibMaker to show some Task Dialog examples for CIDC.

 ![image](https://clarionhub-uploads.s3.eu-north-1.amazonaws.com/original/2X/0/08949675ac5d6f81000b26df762ae1113d7e85a3.png)

> **[GitHub - CarlTBarnes/LibMakerPlusTaskDlg: LibMaker Plus with Task Dialog used for Message()....](https://github.com/CarlTBarnes/LibMakerPlusTaskDlg)**
>
> LibMaker Plus with Task Dialog used for Message(). An example for CIDC 2019.
