如何使编译器可以接受十六进制值



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

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

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

SND_SYNC = @"0×0000",

。但现在我得到"无法将类型'字符串'隐式转换为'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'"

只需分配它们 - SND_SYNC = 0x000

我想你想要

int val = 0x12fe;

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

至少就我而言,我必须将所有小写的x更改为大写的X才能使其工作。

相关内容

  • 没有找到相关文章

最新更新