-2

http://www.pinvoke.net/default.aspx/coredll/playsound.htmlのコードを使用しようとしています

ただし、いくつかのエラーメッセージが発生します。つまり、「予期しない文字'×'」が26回発生します。

そこで、次のように、valsを逐語的な文字列に変更してみました。

SND_SYNC = @ "0×0000"、

...しかし今、私は「タイプ'文字列'を'int'に暗黙的に変換することはできません」を取得します

これらの文字列をintに変換できることはわかっていますが、それは本当にそれを行う方法ですか?私はそれをそのようにコンパイルすることができるかもしれないのではないかと心配していますが、それでも動作しません(またはさらに悪いことに)。コンパイラがそれらを受け入れるように、これらの16進値をそのようにマークする適切な方法は何ですか?

コードの最初のビットは次のとおりです。

[DllImport( "winmm.dll"、SetLastError = true)] static extern bool PlaySound(string pszSound、UIntPtr hmod、uint fdwSound);

[Flags]
public enum SoundFlags
{
    SND_SYNC = 0×0000, // <- "unexpected char 'x'"
4

4 に答える 4

2

それらを割り当てるだけです-SND_SYNC = 0x000

于 2012-09-13T16:24:24.830 に答える
1

私はあなたが欲しいと思います

int val = 0x12fe;
于 2012-09-13T16:25:29.003 に答える
1

Web サイトから ac# Visual Studio 2012 エディターにコピーしたコードで同じ問題が発生しましたが、貼り付けた x は x ではなく、他の文字でした。それらを実際の x 文字、大文字または小文字に置き換えるとうまくいきました。

于 2013-07-29T07:40:57.947 に答える
0

私の場合、少なくとも、小文字の x をすべて大文字の X に変更して動作させる必要がありました。

于 2012-09-13T16:38:32.260 に答える