나는 펜, 색상 컬렉션 및 도면을 관리 할 수있는 클래스를 가지고비주얼 스튜디오 오류 C2664은
class NRGraphics
{
...
void newPen(std::string name, float epaisseur, Color couleur, DashStyle style);
void newPen(std::string name, float epaisseur, std::string colorName, DashStyle style);
...
}
사람들은 그 이름을 가진 유일한 방법입니다. 일부 기능에서는 대부분 초를 사용합니다.
void NRCell::draw(NRGraphics * drawer)
{
switch(backgroundStyle)
{
case Solid:
std::string colorName;
std::string borderPen;
std::string borderColorName = "pas de couleur";
try
{
colorName = drawer->findColor(color->Red(), color->Green(), color->Blue(), color->Alpha());
}
catch(std::exception e)
{
colorName = "R";
colorName += color->Red();
colorName += "G";
colorName += color->Green();
colorName += "B";
colorName += color->Blue();
colorName += "A";
colorName += color->Alpha();
drawer->newColor(colorName, color->Red(), color->Green(), color->Blue(), color->Alpha());
}
try
{
borderColorName = drawer->findColor(
borderColor->Red(),
borderColor->Green(),
borderColor->Blue(),
borderColor->Alpha());
borderPen = drawer->findPen(borderColorName, borderSize);
}
catch(std::exception e)
{
if(borderColorName == "pas de couleur")
{
borderColorName = "R";
borderColorName += borderColor->Red();
borderColorName += "G";
borderColorName += borderColor->Green();
borderColorName += "B";
borderColorName += borderColor->Blue();
borderColorName += "A";
borderColorName += borderColor->Alpha();
drawer->newColor(
borderColorName,
borderColor->Red(),
borderColor->Green(),
borderColor->Blue(),
borderColor->Alpha());
}
borderPen = "Pen_color_";
borderPen += borderColorName;
borderPen += "_size_";
borderPen += borderSize;
drawer->newPen(borderPen, (float)borderSize, borderColorName, 0);
}
drawer->DrawFilledSolidRectangle(
rect->getPt1()->X(), rect->getPt1()->Y(),
rect->getPt2()->X(), rect->getPt2()->Y(),
colorName,
borderPen,
borderSize
);
break;
/*case GradientHorizontal:
break;
case GradientVertical:
break;*/
}
}
을 그리고 여기에 비주얼 스튜디오 출력 저를 컴파일 할 때 무엇을 : 그래서 여기가 내가 쓴 것입니다,
오늘은 새로운 클래스를 작성했다, 나는 두 번째 방법을 사용했다
오류 메시지의1>c:\users\md2i\desktop\current\branch\devel\sources\nrgraphicscomponents.cpp(90): error C2664: 'void NRGraphics::newPen(std::string,float,Gdiplus::Color,Gdiplus::DashStyle)' : impossible de convertir le paramètre 3 de 'std::string' en 'Gdiplus::Color'
1> Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
자동 영어 번역 :
1>c:\users\md2i\desktop\current\branch\devel\sources\nrgraphicscomponents.cpp(90): error C2664: 'void NRGraphics::newPen(std::string,float,Gdiplus::Color,Gdiplus::DashStyle)' : can not convert parameter 3 from 'std::string' to 'Gdiplus::Color'
1> No conversion operator defined by the user available that can perform this conversion, or the operator can not be called
나는 어 있기 때문에, 조금 혼란 스러워요 Visual Studio 자동 완성 기능을 사용하여 모든 오버로드 된 메서드를 보여줍니다.
내가 뭘 잘못했는지 모르겠다.
도움 주셔서 감사합니다.
모든 임시 파일을 삭제 시도하고 다시 시작 VS – sp2danny
을 나는 비주얼 스튜디오를 폐쇄, 빌드 폴더,이 파일 삭제 : project.sdf과 ipch 폴더에 있습니다. 그런 다음 VS를 다시 시작하고 관련 파일을 작성하십시오. 작동하지 않습니다. 그리고 나서 전체 프로젝트를 재구성 해 봅니다. 실패한 것은 ... – AMDG
Plz는 영어로 관련 텍스트를 게시합니다. – Rakib