首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >本机dll调用.NET dll

本机dll调用.NET dll
EN

Stack Overflow用户
提问于 2013-05-10 15:02:06
回答 2查看 175关注 0票数 0

我想弄清楚这是怎么回事:

  • 我有一个.NET dll,比如说NETDll.dll,我没有要修改的源代码。
  • 我想在我的NETDll.dll项目中使用这个C++,它将创建一个本机dll,比如NativeDll.dll。

因此,我认为问题出在哪里(我可能错了):

  • 因为我的NativeDll.dll是本机的,所以它不能是CLR/CLI。本机dll没有运行时引擎,但CLR有。

我该怎么做?谢谢你的建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-10 15:03:46

您必须在.NET程序集中以COM的形式公开某些内容。

票数 1
EN

Stack Overflow用户

发布于 2013-06-15 22:30:54

本机DLL可以是一个混合模式的本机程序集和.NET程序集,使用C++/CLI.在这里搜索“#务实管理的”/“非管理的#语用”,或者查看任何关于C++/CLI的书籍。基本上,假设您拥有VisualC++ 2010或2012年,您可以编写如下内容:

代码语言:javascript
运行
复制
#pragma unmanaged

int main()
{
  CallManagedTrampoline();
}

#pragma managed

void CallManagedTrampoline()
{
  TypeFromDotnetDLL t = new TypeFromDotnetDLL();
  t.CallSomething();
}

事实上,根据.NET DLL中的细节,您甚至可能不需要将#杂注管理在CallManagedTrampoline()调用之前--有时您可以直接从非托管代码调用。C++/CLI是你的朋友。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16485265

复制
相关文章

相似问题

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