如何从托管c ++ exe调用非托管C ++ exe

时间:2010-04-28 06:22:47

标签: c++ unmanaged exe managed

请告诉我如何从托管c ++ exe或dll调用非托管c ++ exe函数?帮助代码示例会更有用。 谢谢

3 个答案:

答案 0 :(得分:0)

您需要链接包含要调用的函数的库,包含定义函数的标头,然后只需调用它。

如果没有更具体的问题,你不会得到更多的东西。

答案 1 :(得分:0)

我想你应该看看P / Invoke。使用此技术,您可以从托管函数调用DLL或EXE中导出的任何未管理函数。

例如: http://www.codeproject.com/KB/cs/essentialpinvoke.aspx

答案 2 :(得分:0)

托管/非托管是一个红鲱鱼。当你有一些你想要调用的代码时,它应该在lib,DLL或COM exe中。一个不实现任何COM接口的常规双击它运行它的exe不会将任何代码暴露给外部调用者。如果您只想运行它,可以使用Process.Start启动整个exe。否则你将需要重新构建一下(这将涉及到其他exe的源代码。)通常我将大部分功能拉入lib或dll,将原始exe调用到该库中以获取它的工作完成了,并且新的exe也调用了同一个库。

由于您使用的是C ++ / CLI,因此请不要使用COM Interop或P / Invoke。 IJW更容易(它只是工作,对吗?)包括标题,链接到lib。完成!但正如您现在所看到的那样,获取lib可能是迈出的第一步。