把它放在那里! 你可能会认为这已经被数百万次的问题所回答了,尽pipe地球在太阳附近旋转的时间已经被回答了很多次了,但是在这个问题上请耐心等待。
我的任务很简单:在我的C ++(windows)程序中,我希望能够执行一些托pipe的(C#或VB.NET等)代码。
等待! 在你使用CTRL-T之前,先从Google上随便找一个链接,把它放在我的脸上,然后说“Learn to search!”,请继续阅读:
我从这里开始http://sites.Google.com/site/robertgIEsecke/ ,它允许我将C#函数作为C风格函数导出,然后在C ++中使用它。 它工作正常。 但现在我有两个二进制文件,本机exe文件和托pipe的dll 。
我如何将DLLembedded到EXE中,并将其映射到内存中,最后从那里调用它? 换句话说,我想只有一个同时包含本机exe和受pipedll的exe文件。
当然,我已经试过这个http://www.joachim-bauch.de/tutorials/loading-a-dll-from-memory/
不幸的是,这不起作用,代码没有完成最后的“附加”过程。 我猜这是因为该DLL的托pipeforms。
谢谢阅读。
编辑:我真的不想用C ++ / Cli的所有手段:(
你要创建的是一个“混合模式”程序集。 只有在Visual Studio中创建“Managed-C ++”程序集/可执行文件时,才能创建该文件。
从我多年的经验来看,C#/ VB.NET不支持这一点。 虽然我可能是错的,它可能只是一个Visual Studio的限制,而不是C#本身。
由于安全问题,您在这里尝试的东西并不真正被支持。 本质上,你试图执行自己的数据块(甚至可能会标记为nx(不执行))。过去,我尝试了类似的方法(对于DRM原因,只是在“避免反编译器”) – 我不是限制性DRM风扇),这是可能的,但它是一个PITA使用和错误倾向取决于目标机器的安全设置,如果可能的话,不惜一切代价避免。
博客上的代码本质上是使用正确的方法,但是这个代码只能用于非托管的库(正如你已经注意到的那样)。 这只是由于托管库和可执行文件的构建方式(基本上只有一个小的本地存根,用于启动运行时环境的可执行文件;但是没有库(因此没有本地入口点;这将是该方法所需的)) 。
总结以上是内存溢出为你收集整理的如何从非托pipe代码执行托pipe代码?全部内容,希望文章能够帮你解决如何从非托pipe代码执行托pipe代码?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)