パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Unicode版Autohotkeyから敢えてMessageBoxAを使う」記事へのコメント

  • autohotkeyはよくわからないが

    str:="あいう"

    これが UTF-16 なら、 WideCharToMultiByte だけでよい。

    DllCall("WideCharToMultiByte", "uint", 0, "int", 0, "uint", &str
                                                                  , "int", -1, "str", str2, "uint", BufSize
                                                                  , "int", 0, "int", 0)

    これが UTF-8 なら、ahkでの例 のやつで、MultiByteToWideChar・WideCharToMultiByteの呼び出しが、下記のよーな感じとなる、と思う。(元の例が、SJISからUTF-8への変換であることに注意)

    DllCall("MultiByteToWideChar", "uint", 65001, "int", 0, "str", str
                                                                  , "int", -1, "uint", &Buf1, "uint", RawLen + 1)
        DllCall("WideCharToMultiByte", "uint", 0, "int", 0, "uint", &Buf1
                                                                  , "int", -1, "str", Buf2, "uint", BufSize
                                                                  , "int", 0, "int", 0)

    CodePage が 0 の指定で、Windowsの言語環境に応じたコードページを使用するとかそんなやつなので、元の例の 65001 を 932 に変えると、 str を CP932 とみなして UTF-16にし、その後 UTF-16 から CP932 にする動作になるので意図した動作をしない。

    --
    svn-init() {
      svnadmin create .svnrepo
      svn checkout file://$PWD/.svnrepo .
    }

アレゲは一日にしてならず -- アレゲ見習い

処理中...