Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调用非托管C++;从托管c++;exe 请告诉我如何从托管C++ exe或dll调用非托管C++ exe函数?关于代码示例的帮助会更有用。 谢谢_C++_Unmanaged_Exe_Managed - Fatal编程技术网

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

如何调用非托管C++;从托管c++;exe 请告诉我如何从托管C++ exe或dll调用非托管C++ exe函数?关于代码示例的帮助会更有用。 谢谢,c++,unmanaged,exe,managed,C++,Unmanaged,Exe,Managed,您需要针对包含要调用的函数的库进行链接,包括定义函数的头,然后只调用它 如果没有一个更具体的问题,你不会得到更多的答案。我认为你应该看看p/Invoke。使用此技术,您可以调用从托管函数导出的DLL或EXE中的任何非托管函数 例如: 托管/非托管是一种转移注意力的方法。当您有一些代码要调用时,它应该在lib、DLL或COM exe中。一个普通的双击它来运行它的exe,它不实现任何COM接口,也不会向外部调用方公开它的任何代码。如果您只想运行它,可以使用Process.Start启动整个exe。否

您需要针对包含要调用的函数的库进行链接,包括定义函数的头,然后只调用它


如果没有一个更具体的问题,你不会得到更多的答案。

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

例如:

托管/非托管是一种转移注意力的方法。当您有一些代码要调用时,它应该在lib、DLL或COM exe中。一个普通的双击它来运行它的exe,它不实现任何COM接口,也不会向外部调用方公开它的任何代码。如果您只想运行它,可以使用Process.Start启动整个exe。否则,您将需要重新构建一点(这将涉及到将源代码添加到另一个exe中)。通常,我将大部分功能拉入一个库或dll中,将原始的exe调用放入该库以完成其工作,并将新的exe调用放入同一个库中


因为您使用的是C++/CLI,所以不要使用COM互操作或p/Invoke。IJW更容易(它只是工作,对吗?)包括标题,链接到lib。完成!但正如您现在看到的,获取lib可能是第一步。

这里的问题是lib文件不是为exe生成的。我有一个非托管C++ exe,它的头(test h)低于α,包括“STDAFX.H”类Myclass {Pube:int Mytest(int data);};下面是Test.CPP包含“StdAFX.h”包含“MyTest:int数据”{返回100;} int main(int ARC,char *Agv[]){返回0;}现在我想从托管C++ DLL调用这个MyTestTo()函数。谢谢安德烈亚斯的回复。P\Invoke同样适用于dll而不是exe。属性DllImport查找dll。但是我有一个exe。我不知道该怎么做。它对exe也很有用。但您是对的,所讨论的函数必须从exe文件导出。通常,exe文件不导出任何符号。你有兴趣为exe文件调用一个私有函数吗?谢谢你,凯特。看来我想用的方法是不可能的。我现在将重新设计它。