位图结构

时间:2012-07-19 13:06:31

标签: c# .net struct bitmap

我有这个结构定义:

public struct Icon {
  public Bitmap bitmap;
  public Bitmap g_bitmap;
  public int bitmap_ID;
  public int g_bitmap_ID;
} 

Icon current = new Icon();

然后我尝试从文件加载位图:

current.bitmap = new Bitmap(path);
//Create the texture
current.bitmap_ID = TexUtil.CreateTextureFromBitmap(current.bitmap);
current.g_bitmap = new Bitmap(current.bitmap)

和其他变量相同,但bitmap/g_bitmap继续有null值,bitmap_ID/g_bitmap_ID位于0

不太确定理解结构是如何工作的(我以前的经验是在C中)。试图阅读MSDN文档,但没有任何帮助。

1 个答案:

答案 0 :(得分:3)

对不起大家, 我真是个傻瓜。忘记将引用传递给我的方法......

private void Load_Icon(Icon icon, string path) {
  icon.bitmap = new Bitmap(path);
  icon.bitmap_ID = TexUtil.CreateTextureFromBitmap(icon.bitmap);
  icon.g_bitmap = new Bitmap(icon.bitmap);
}

忘了在第一个参数中添加ref。通过这种方式,它只能在icon的副本上本地工作。这有效:

private void Load_Icon(ref Icon icon, string path) [...]

赦免!