我有这个结构:
#pragma once
#include "Defines.h"
#ifndef _COLOR_H_
#define _COLOR_H_
namespace BSGameFramework
{
namespace Graphics
{
ref struct Color
{
public:
Color(BYTE r, BYTE g, BYTE b);
Color(BYTE r, BYTE g, BYTE b, BYTE a);
Color(Color% color) {};
static property Color White
{
Color get()
{
Color white = gcnew Color(255, 255, 255);
return white; // Here the error
}
}
private:
BYTE r;
BYTE g;
BYTE b;
BYTE a;
};
}
}
#endif
当我编译文件时,我收到了这个错误:
错误1错误C2664:'BSGameFramework :: Graphics :: Color :: Color(const BSGameFramework :: Graphics :: Color%)':无法将参数1从'BSGameFramework :: Graphics :: Color ^'转换为'const BSGameFramework :: Graphics :: Color%'c:\ users \ nicola \ desktop \ directx prove \ bsgameframework \ bsgame \ Color.h 24 1 BSGame
PS:BYTE
在Defines.h中定义为unsigned char
解决:
我改变了属性如下:
static property Color^ White
{
Color^ get()
{
Color ^white = gcnew Color(255, 255, 255);
return white;
}
}
答案 0 :(得分:1)
const
对托管类型参数没有意义。将构造函数更改为:
Color(Color% color)
答案 1 :(得分:1)
将属性更改为:
static property Color^ White
{
Color get()
{
Color ^white = gcnew Color(255, 255, 255);
return white;
}
}
或
static property Color White
{
Color get()
{
return Color(255, 255, 255);
}
}