从c#调用c++的exe函数
Calling C++ exe functions from C#
我正在尝试使用不同的c#应用程序监视用c++编写的正在运行的应用程序。
在我的c++代码中,我定义了一个API:_declspec(dllexport) //is this even possible when compiling an .exe?
int getSomething();
是否有一种方法来调用这个函数从c#代码?
经典方法是否有效:
[DllImport("myexe.exe", CharSet = CharSet.Auto)]
public static extern int getSomething();
是的,任何PE可执行文件都可以通过这种方式导出函数。请记住,编译器有时会混淆导出名称,导致如下内容:
MyAPIFunction@16
您可以通过将可执行文件加载到PEInfo等工具中来检查名称是否正确。
您应该能够以与DLL中的函数完全相同的方式调用它。
看起来你想要IPC,而不是P/Invoke调用。有关如何在c#中使用命名管道的信息,请参阅此页。这里是一个寻找如何在c++中使用命名管道信息的好地方。
是的,您可以从.exe
导出函数,就像您可以从.dll
导出函数一样,您所展示的方法是正确的。
不,你不能通过这样做与现有进程交互,就像从.dll
加载函数不允许你使用.dll
与其他进程交互一样。
相关文章:
- PrintWindow函数在notepad.exe中出错
- 如何调用 ntoskrnl.exe srand 函数?
- C++ DLL 引用C++.exe中的函数和类
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 将代码移动到函数中时,DLL "myApp.exe"中找不到序号错误0xC0000138
- 是否有获取 *.exe 文件的产品名称的函数?
- 记录使用 createprocess 函数调用的 exe 的错误
- 如何在 Linux/Mac 上调用特定的 EXE 函数
- 调用外部函数(从一个exe到另一个exe)
- 如何使用直接"tetgen.h"和函数在不使用"tetgen.exe"的情况下生成网格?
- 偏移量中的钩子函数类(从.dll中的.exe)
- windows DLL函数调用外部exe文件无效
- 如何告诉link.exe使用wmain作为入口点.LNK2019:函数__tmainCRTStartup中引用的未解析外
- VS2012,使用系统函数调用exe,这会导致崩溃
- 从c#调用c++的exe函数
- 如何在我的DLL内调用我的exe中定义的函数
- c++中无法使用shellExecute函数打开.exe
- 每x秒从.exe内的dll调用函数
- 让dll通过发送一个指针来调用.exe函数
- DLL函数名使用dumpbin.exe