我正在使用c++-cli生成一个dll。dll中的类如下所示:
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#中公开
发布于 2012-07-11 06:03:31
需要使用public关键字使托管类型对程序集的使用者可见。试一试
public ref class Locator { ... };发布于 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)吗?:-)
发布于 2012-07-11 04:02:21
C++/CLI生成标准的.NET托管程序集。这就是C++ /CLSCLS语言的全部意义所在,将现有的C++代码编译成托管程序集,而无需将其重写为=>语言。
因此,只需在使用项目中将此程序集作为任何其他.NET程序集引用即可。然后消费:
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 dictionaryhttps://stackoverflow.com/questions/11421002
复制相似问题