buele
2020-05-07 18:47
采纳率: 100%
浏览 191

C++ Graphics类声明时有多个构造函数重载怎么办

我希望在窗口中显示个图片。
在创建Graphics类时,总是有多个构造函数重载。
以下是窗口过程的WM.PAINT下的代码段:

        const WCHAR *filename = L"timg.jpg";
        Image *image = Image::FromFile(filename);
        Graphics g(image);
        delete filename;
        delete image;

在Graphics g(image)的image那里报错,说“有多个构造函数的实例与参数列表匹配”
下面列出

    Graphics::Graphics(Image *image);
和Graphics::Graphics(<error-type> *graphics);
参数类型为(Image *)

我尝试过CSDN上的
Graphics g=Graphics.FromImage(image);语句,但是会在Graphics.FromImage的“.”前面报错:不允许使用类型名。

直接使用

Graphics::DrawImage(image,0,0);

又报错“非静态成员引用必须与特定对象相对”。后来发现DrawImage是动态成员不能用“::”。改成“.”之后又在“.”下面报错:应输入标识符。

我真没办法了,请教大佬来教教我。Please。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2020-05-07 22:17
    已采纳

    你到底用的什么,如果是C++ CLI(也就是.net),那么你所有的都用.net的那套,否则就干脆不要用
    两者是不同的体系

    打赏 评论
  • wlj1234 2020-05-11 13:40

    Graphics* g= Graphics::FromImage(image);
    FromImage是静态函数,c++中访问静态函数是"::"而不是"."

    打赏 评论

相关推荐 更多相似问题