NWSTK
しかし、NWSTKでは、HTMLのtextarea要素を上手く利用することにより、あたかも、WindowsのWM_CHARイベントで日本語を受け取っているかのように、CWnd::OnChar()イベントが呼び出され、アプリケーション作者目線では、HTMLのtextareaの存在を意識する必要が無い。また、IMEがONの場合でも、BackSpaceキーなどをCWnd::OnKeyDown()やCWnd::OnChar()で受け取ることが可能である。 仮想キーコードでは、数字キーやカーソルキーを入力した時、メインキーを押したことに起因するのか、テンキー(NUM PAD)を押したことに起因するのかが区別できないため、便利なエディタを作りたいときには不便である。 そこで、NWSTKでは、仮想キーコード以外に、生キーコード(RawKeyCode)もサポートすることによって、メインキーとテンキー、左右シフトキー、左右コントロールキーなどが明確に区別できるようにしてある。
EM_ASM() 文を用いると、WebAssembly版ではJSコードが、Android版ではJavaコードが、その場に容易に挿入できる。この際、SuperCからの引数も容易に指定できる。EM_ASM()のJSコード、Javaコードの中から、SuperCのソースコードに書いた関数を呼び出すことも容易に出来る。 また、EM_ASM()文の中においても、Cの#defineマクロ、#if, #endif などの前処理指令や、SuperCのmif, melse, mrept などの拡張マクロ構文などがそのまま利用できるため、SuperCレベルでのマクロ定数を、JSやJavaコードの中にそのまま記述することが出来、便利にソースを書くことが出来る。 Java版のEM_ASM()では、Java側で受け取る仮引数の型と名前を指定することにより、SuperC側の実引数に指定した文字列や配列を、Javaの文字列やByteArrayに自動変換することが出来、この仕組みが無かった場合と比べてソースコードの記述量は大幅に減らせる。