none
请问斑竹C#写的COM用MFC调用,C#中的Image类型在MFC中要怎么调用 RRS feed

  • 问题

  • 如题,我需要在MFC中调用C#编写的COM组件,可是C#中有一个Image类型,我在MFC重要怎样调用
    应该是MFC中的什么类型才能转成C#中的Image类型呢
    另外,我看到一个C#调用我编写COM的那段C#的例子,中有Guid.NewGuid().ToString(),这个我在MFC中要怎么实现呢
    2009年8月27日 2:24

答案

  • 传一个System::Image^类型的对象进去。如果你只有MFC的CImage的话,需要把图片保存到磁盘或者内存,之后创建一个System::Image^类型的对象读数据。

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Tim Li 2009年9月11日 3:00
    2009年8月27日 3:04
    版主
  • COM是二进制文件上的复用,调用方是不用关心制作方的实现语言的,获取interface后直接调用函数就行了
    • 已标记为答案 Tim Li 2009年9月11日 3:00
    2009年9月8日 6:33

全部回复

  • 托管类型转不了。用C++/CLI的话,是System::Image^类型
    Guid::NewGuid()->ToString();

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年8月27日 2:51
    版主
  • 斑竹,我还是不太懂你说的
    我在COM里的C#代码是这个:
    public bool AddFrame(Image im)
      {
    ……
       }
    我想在C++调用这个方法,要传递什么样的参数给这个方法才行呢,我尝试用GDI+的Image类型,但是不行,错误提示是error C2664: 'AddFrame' : cannot convert parameter 1 from 'class Gdiplus::Image *' to 'struct System_Drawing::_Image *',要怎么解决呢

    2009年8月27日 2:57
  • 传一个System::Image^类型的对象进去。如果你只有MFC的CImage的话,需要把图片保存到磁盘或者内存,之后创建一个System::Image^类型的对象读数据。

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Tim Li 2009年9月11日 3:00
    2009年8月27日 3:04
    版主
  • 在MFC中怎么传System::Image^类型的对象啊啊啊,MFC中貌似无法创建System::Image^类型…………
    或者斑竹可以帮我写一个例子咩,多谢了

    2009年8月27日 3:58
  • 这个类不是MFC的,是.Net的
    你既然引用了C#的类库,怎么会没引用.Net的类库?

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年8月27日 11:39
    版主
  • COM是二进制文件上的复用,调用方是不用关心制作方的实现语言的,获取interface后直接调用函数就行了
    • 已标记为答案 Tim Li 2009年9月11日 3:00
    2009年9月8日 6:33