-2

我正在尝试使用http://www.pinvoke.net/default.aspx/coredll/playsound.html上的代码

但是,它会导致几个错误消息,即:“意外字符'×'” 26 次。

所以,我尝试将 vals 更改为逐字字符串,如下所示:

SND_SYNC = @"0×0000",

...但现在我得到“无法将类型'string'隐式转换为'int'

我意识到我可以将这些字符串转换为整数,但这真的是这样吗?恐怕我可以让它以这种方式编译,但它仍然无法工作(或更糟)。将这些十六进制值标记为这样的适当方法是什么,以便编译器接受它们?

这是代码的第一部分:

[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

我从网站复制到 ac# Visual Studio 2012 编辑器的一些代码也遇到了同样的问题,它粘贴的 x 根本不是 x,而是其他字符。用实际的 x 字符、大写或小写替换它们对我有用。

于 2013-07-29T07:40:57.947 回答
0

至少在我的情况下,我必须将所有小写 x 更改为大写 X 才能使其正常工作。

于 2012-09-13T16:38:32.260 回答