ConsoleUTF8
这个小型项目是一个很小的实验,要清洁,灵感来自博客上的一篇文章,我意外地阅读了Codeproject(开发人员的每日新闻)邮件列表上的链接。您可以在此处找到我所指的文章:窗口上的C和C ++开发的一些理智
由于我偶尔也将Embarcadero的基于Clang的编译器用于非GUI应用程序,因此我想我想看看他的解决方案是否也适用于我的“我的”编译器。
该文章(Chris Wellons)的作者认为,工具链的C运行时库未考虑到大多数旧版代码(Windows)使用UTF8的事实。这几乎无法轻松将应用程序从Unix / Linux转移到Windows。他还在Github上拥有一个存储库,其中包含使用Mingw在Windows上的控制台应用程序相关的有趣技巧。
las,存储库太大了,无法将该项目作为subper子进行。因此,我凭借我感兴趣的存储库目录中复制几个文件的自由(我提前道歉)。
我将他的技术“改编”到了Embarcadero的基于Clang的工具链。
要嵌入清单文件(手工),您需要使用Embarcadero资源编译器(BRCC32)这样:
brcc32 manifest.rc -iC:\\progra~2\\Embarcadero\\Studio\\22.0\\include\\windows\\sdk -iC:\\progra~2\\Embarcadero\\Studio\\22.0\\include\\windows\\crtl
或者,从IDE中,添加项目选项(所有配置 – 所有平台”)
-i\"$(BDSINCLUDE)\\windows\\sdk\" -i\"$(BDSINCLUDE)\\windows\\crtl\"
在“资源编译器”部分中的“其他选项”中。
该项目嵌入init.c文件,utf8.xml文件和从上述存储库中获取的subtest.rc文件。我只是创建了一个控制台应用程序,并通过从上述存储库示例的主体中获取的代码修改了主体。
它只是有效:
