10

一部の C++ を C# コードに変換していたところ、以下の定義が表示されました。

#define x 'liaM'

まず、この単一引用符で囲まれた定数は何を意味するのでしょうか? c# で文字列定数にしますか?

次に、この定数は C++ の uint 変数に値として割り当てられます。それはどのように機能しますか?

uint m = x;
4

1 に答える 1

4

これはFOURCCと呼ばれることもあります。文字列から mmioStringToFOURCC と呼ばれるFOURCCに変換できる Windows API があり、同じことを行う C# コードを次に示します。

public static int ChunkIdentifierToInt32(string s)
{
    if (s.Length != 4) throw new ArgumentException("Must be a four character string");
    var bytes = Encoding.UTF8.GetBytes(s);
    if (bytes.Length != 4) throw new ArgumentException("Must encode to exactly four bytes");
    return BitConverter.ToInt32(bytes, 0);
}
于 2013-10-21T14:17:09.093 に答える