2012-05-01 1 views
7

Windowsの "ANSI"関数名(例:CreateFileA)を模倣するラッパーライブラリはありますか?入力がUTF-8であると仮定し、それらをUTF-16に変換し、関数のUTF-16バージョンを呼び出します。 CreateFileW)、プログラムの出力をUTF-8に変換し直しますか?Windows用のUTF-8からUTF-16 APIラッパーライブラリ?

これは、ASCIIプログラムがほとんどシームレスにUTF-8を使用できるようにします。

+4

AFAIK - いいえ、あまりにも多くのWindows API関数があります。 – valdo

+0

* ASCII文字列をUTF-16に変換することができます。 – JeremyP

+0

おそらく最も簡単なことですが、UTF-16バージョンのWindows API関数をどこでも使用できます。文字列がUTF-8ソースから来た場合は、おそらくそれらをラップする方が簡単でしょう。 – jamesdlin

答えて

2

API関数をラップするのではなく、文字列を変換関数でラップする方が簡単です。 Windowsの次のバージョンでより多くのAPI機能が追加されると、将来的な見通しになるでしょう。

+0

私は-1に嫌いですが、これは本当にその質問に答えない。 :\ – Mehrdad

+0

@Mehrdad、それはあなたの権利です。尋ねられたように質問に対する答えではないかもしれませんが、質問の背後にある問題に対する答えです。 –

+0

これはあなたがソースコードにアクセスできると仮定しています。しかし、このようなライブラリがあれば、ソースコードは必要ありません。ライブラリをDLLとしてコンパイルするだけで、実行時に関数をリダイレクトすることができます。 – Mehrdad

0

WDLと呼ばれるものがありますが、UTF-8ラッパー(win32_utf8)がいくつかあります。私はそれを試したことがないので、サポートの完成度はわかりません。

+0

これは一握りの機能(約30個)のラッパーしか持たないようです。 – Mehrdad

0

他にも述べたように、このようなライブラリを実現するにはあまりにも多くのWinAPI関数があります。しかし、ツールチェインレベルで、またはhttp://research.microsoft.com/en-us/projects/detours/のようなものを使ってハックすることができます。

関連する問題