我正在尝试使用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'"