我有以下简单的测试:
class C<T>
{
public struct A
{
int x;
}
}
class Program
{
static unsafe void Main(string[] args)
{
IntPtr p = new IntPtr();
var a = (C<int>.A*)p.ToPointer();
}
}
Run Code Online (Sandbox Code Playgroud)
代码生成错误CS0208:
Cannot take the address of, get the size of, or declare a pointer to a managed
type ('C<int>.A')
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么在这种情况下结构被视为"托管"?
我有一个图标,由HICON我想要以自定义控件为中心绘制的手柄识别.
如何确定图标的大小以便我可以计算出正确的绘图位置?
如何找出用户在控制面板中配置的声音文件?
示例:我想播放"已连接设备"的声音.
哪个API可用于查询控制面板声音设置?
我看到控制面板对话框中有一些由第三方程序创建的自定义条目,因此必须有一种方法让这些程序与全局声音设置进行通信.
编辑:谢谢.我不知道PlaySound在指定注册表项的名称时也只播放了合适的声音文件.
要播放"Device Conntected"声音:
::PlaySound( TEXT("DeviceConnect"), NULL, SND_ALIAS|SND_ASYNC );
Run Code Online (Sandbox Code Playgroud)