c#如何调用c++写的DLL中的导出类

Jiao319 2010-05-18 10:20:01
近来做东西的时候,用到了一个类库OpenCV,C#不支持这个类库(有一个版本支持,但不想再去学了),所以很多类库中定义的结构像IPLImage等在C#中无法定义,我是在VC中将这一个类库进行的重新封装,封装为一个视频处理类,类中定义的成员变量包括:读取的当前帧、捕获的摄像头等一些变量,成员函数包括:打开视频、读帧等一些函数,因为这些成员函数都要用到前面的成员变量,所以我只好将这个类导出了,但在C#中我不知道怎样去初始化一个这个类的对象以调用成员函数,下面是我的一个简化的导出类,以下面的这个类为例子,谁能给我一个c#中调用这个导出类的代码,并且能使用里面的一些函数,可以发送到我的QQ邮箱:296522974@qq.com,能解决问题的全分相送。
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#能调用。
...全文
460 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jiao319 2010-05-22
  • 打赏
  • 举报
回复
谢谢大家帮忙了,我用另一种方法解决了这个问题,没有用DLL,因为这个我一直没搞懂,也没时间去搞了。现在给分。
Joe-xXx 2010-05-18
  • 打赏
  • 举报
回复
自己封送下就好了,如果复杂的类型可以封装成结构,其他的话就用Native Type就行
Jiao319 2010-05-18
  • 打赏
  • 举报
回复
不死给的链接我看了,但没找到有用的信息,他们导出的都是函数
Jiao319 2010-05-18
  • 打赏
  • 举报
回复
哪位大侠给个代码呗!只要告诉我怎么在C#中能初始化一个我的导出类,并且使用对象中的函数就可以了
Jiao319 2010-05-18
  • 打赏
  • 举报
回复
问题的关键是,我的函数用的参数都不是基本类型的参数,在C#中没法定义,我也没办法将这个参数返回
皇城龙三 2010-05-18
  • 打赏
  • 举报
回复
捷哥1999 2010-05-18
  • 打赏
  • 举报
回复
看看这个!
创建Win32 DLL,并在C#里面调用
http://blog.csdn.net/tangl_99/archive/2006/09/06/1182354.aspx
CSharp 调用C++ DLL; 参数为指针导出函数 c# Csharp调用 c++库 参数为导入和导出指针两种 包含C++ DLL源码 如fun(cont char* A,char*B) A为输入参数,B为输出参数-C# CSharp call C++ DLL lib dll function param use export and import eg: fun(cont char* A,char*B) A IN,B OUT TestDll\Debug\TestCallDll.exe .......\.....\TestCallDll.vshost.exe .......\.....\TestCallDll.vshost.exe.manifest .......\.....\TestDll.dll .......\.....\TestDll.lib .......\TestCallDll\Form1.cs .......\...........\Form1.Designer.cs .......\...........\Form1.resx .......\...........\obj\Debug\TestCallDll.csproj.FileListAbsolute.txt .......\...........\...\.....\TestCallDll.csproj.GenerateResource.Cache .......\...........\...\.....\TestCallDll.exe .......\...........\...\.....\TestCallDll.Form1.resources .......\...........\...\.....\TestCallDll.pdb .......\...........\...\.....\TestCallDll.Properties.Resources.resources .......\...........\Program.cs .......\...........\...perties\AssemblyInfo.cs .......\...........\..........\Resources.Designer.cs .......\...........\..........\Resources.resx .......\...........\..........\Settings.Designer.cs .......\...........\..........\Settings.settings .......\...........\TestCallDll.csproj .......\....Dll\dllmain.cpp .......\.......\ReadMe.txt .......\.......\stdafx.cpp .......\.......\stdafx.h .......\.......\targetver.h .......\.......\TestDll.cpp .......\.......\TestDll.def .......\.......\TestDll.h .......\.......\TestDll.vcproj .......\.......\TestDll.vcproj.PC-201008261742.Administrator.user .......\TestDll.sln .......\TestDll.suo .......\....CallDll\obj\Debug\TempPE .......\...........\...\Debug .......\...........\obj .......\...........\Properties .......\Debug .......\TestCallDll .......\TestDll TestDll

110,577

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧