近来做东西的时候,用到了一个类库OpenCV,C#不支持这个类库(有一个版本支持,但不想再去学了),所以很多类库中定义的结构像IPLImage等在C#中无法定义,我是在VC中将这一个类库进行的重新封装,封装为一个视频处理类,类中定义的成员变量包括:读取的当前帧、捕获的摄像头等一些变量,成员函数包括:打开视频、读帧等一些函数,因为这些成员函数都要用到前面的成员变量,所以我只好将这个类导出了,但在C#中我不知道怎样去初始化一个这个类的对象以调用成员函数,下面是我的一个简化的导出类,以下面的这个类为例子,谁能给我一个c#中调用这个导出类的代码,并且能使用里面的一些函数,可以发送到我的QQ邮箱:[email protected],能解决问题的全分相送。
class _declspec(dllimport) CDLLExport
{
public:
CVedio vedio;
bool bFinished, bSigned, bChecked, bCheckFullScreen;
public:
CDLLExport();
int OpenCamera();
int play();
bool rename(char *nameOld, char *nameNew);
~CDLLExport();
};
能解决这个问题的类似方法也可以,就是如何封装OpenCV这个类库中的一些函数让C#能调用。

解决方案 »

  1.   

    看看这个!
    创建Win32 DLL,并在C#里面调用
    http://blog.csdn.net/tangl_99/archive/2006/09/06/1182354.aspx
      

  2.   

    以前曾经讨论过这个问题http://topic.csdn.net/u/20090430/17/5148f3de-9f7d-45b1-b5ba-2fcaf06baafc.html
      

  3.   

    http://topic.csdn.net/u/20090225/15/a6bc50ad-9721-4749-b189-dc4a4bc045a1.html
      

  4.   

    http://topic.csdn.net/u/20090525/11/233dea6d-b7fb-478c-a824-651dc185b791.html
      

  5.   

    通过Managed C++做了一个Wrapper,这样C#就可以间接调用C++的东西
    http://blog.csdn.net/Muf/archive/2006/04/10/656920.aspxhttp://www.newbt.net:8080/main/bbs/show.jsp?wb_tag=0&id=4300&page=0http://www.codeproject.com/KB/mcpp/UxThemeToolPort.aspxhttp://hi.baidu.com/char_string/blog/item/cfd0991611c4204621a4e97b.html
      

  6.   

    自己封送下就好了,如果复杂的类型可以封装成结构,其他的话就用Native Type就行
      

  7.   

    谢谢大家帮忙了,我用另一种方法解决了这个问题,没有用DLL,因为这个我一直没搞懂,也没时间去搞了。现在给分。