首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向c#公开c++-cli dll

向c#公开c++-cli dll
EN

Stack Overflow用户
提问于 2012-07-11 04:00:34
回答 3查看 821关注 0票数 0

我正在使用c++-cli生成一个dll。dll中的类如下所示:

代码语言:javascript
复制
ref class Locator

{
public:
Locator(int HP) : m_HP(HP) { } 
~Locator() 
{ } 
Dictionary<String^, array< Byte >^>^ Locate(Dictionary<String^, String^>^ imgParms) 
{ .....  }

private:
int m_HP;

我如何公开它以便在c#中使用它?类和成员不会在c#中公开

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-11 06:03:31

需要使用public关键字使托管类型对程序集的使用者可见。试一试

代码语言:javascript
复制
public ref class Locator { ... };
票数 4
EN

Stack Overflow用户

发布于 2012-07-11 06:08:54

几个月前,我问了一个问题,关于类似的问题:

How to use a C callback from C#?

以下是我对这个问题的回答中的一些额外提示:

Calling C++ DLL from C++ works, but not from C#

我听说你在用OpenCV,你知道Emgu CV: OpenCV in .NET (C#, VB, C++ and more)吗?:-)

票数 0
EN

Stack Overflow用户

发布于 2012-07-11 04:02:21

C++/CLI生成标准的.NET托管程序集。这就是C++ /CLSCLS语言的全部意义所在,将现有的C++代码编译成托管程序集,而无需将其重写为=>语言。

因此,只需在使用项目中将此程序集作为任何其他.NET程序集引用即可。然后消费:

代码语言:javascript
复制
var imgParms = new Dictionary<string, string> { { "foo", "bar" }, { "baz", "bazinga" } };
var locator = new Locator(123);
var result = locator.Locate(imgParams);
// TODO: do something with the result dictionary
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11421002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档