User Tools

Site Tools


computer_tips:how_to_create_utf-8_winapi_application_using_mingw_toolchain

How to create UTF-8 winapi application using mingw toolchain?

In addition to mingw you will need mt.exe from windows SDK, so either install full SDK or export mt.exe using those instructions. Also keep in mind that llvm-mt.exe won't work since it only supports merging manifests.

main.c
#include <direct.h>
#include <locale.h>
#include <stdio.h>
#include <windows.h>
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
	char codepage_message[50];
 
	sprintf(codepage_message, "Codepage is %d", GetACP());
	MessageBoxA(NULL, codepage_message, "ąęśćż", MB_ICONINFORMATION);
 
        // create directory called 😊
        // setlocale might not be needed, but it is recommended
	setlocale(LC_ALL, ".UTF8");
	_mkdir("😊");
 
	return 0;
}
app.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity type="win32" name="YourApp" version="1.0.0.0"/>
  <application>
    <windowsSettings>
      <activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
    </windowsSettings>
  </application>
</assembly>
gcc -finput-charset=utf-8 -fexec-charset=utf-8 main.c -o main.exe
mt.exe -manifest app.manifest -outputresource:main.exe;#1

-finput-charset=utf-8 and -fexec-charset=utf-8 are optional since gcc usually parses and emits utf-8 strings by default (usually)

computer_tips/how_to_create_utf-8_winapi_application_using_mingw_toolchain.txt · Last modified: by admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki