坚持住!您可能认为这个问题已经被问过数百万次,并且回答的次数与地球绕太阳转的次数一样多,但请耐心等待我回答这个问题.
我的任务很简单:在我的 C++ (Windows) 程序中,我希望能够执行一些托管(C# 或 VB.NET 等)代码。
等等!在你按下 CTRL-T 之前,从 Google 随机抓取一个链接并在我脸上拍打它,然后说“学习搜索!”,请继续阅读:
我从这里开始http://sites.google.com/site/robertgiesecke/ 这允许我将 C# 函数导出为 C 样式函数,然后在 C++ 中使用它。它工作正常。但现在我有两个二进制文件,native exe 和managed dll。
如何将dll嵌入到exe中并映射到内存中,最后从那里调用它?换句话说,我只想拥有一个包含 native exe 和托管 dll 的 exe。
当然这个我已经试过了http://www.joachim-bauch.de/tutorials/loading-a-dll-from-memory/
不幸的是,这不起作用,代码最后未能完成“附加”过程。我猜这是因为 dll 的托管形式。
感谢阅读。
编辑:我真的不想使用 C++/CLI :(
最佳答案
您要创建的是“混合模式”程序集。仅当您在 Visual Studio 中创建“Managed-C++”程序集/可执行文件时才能创建。
根据我多年的经验,C#/VB.NET 不支持这个。尽管我可能是错的,而且它可能只是 Visual Studio 的限制,而不是 C# 本身的限制。
关于c++ - 如何从非托管代码执行托管代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9247773/