【发布时间】:2012-02-13 12:09:33
【问题描述】:
如果知道函数的原型及其在内存中的地址,是否可以从另一个进程或只知道原型和内存地址的某些代码中调用此函数?如果可能,如何在代码中处理返回的类型?
【问题讨论】:
-
在 C++ 中没有进程。如果您需要帮助,您需要指定您的平台。
-
来自另一个进程?这是一个非常特殊的情况。你真的需要那个吗?
-
@ddriver - 听起来您想研究进程间通信,而不是函数指针。除非您尝试编写调试器,否则您将面临很多障碍。
-
@ddriver 如果您正在谈论从不同的进程调用,您确实需要指定平台。在大多数现代操作系统中,一个进程拥有的内存不能被另一个进程任意读取或写入。如果两个进程想要共享一个内存区域,它们必须明确设置。这通常是一件好事,因为它可以防止一个进程中的错误指针或其他错误影响其他进程,甚至整个操作系统。
-
@Caleb:你想解决什么问题?一般来说,进程如何交互存在很多限制,并且从其他进程调用原始函数非常难以安全可靠地完成。试着退后一步,向我们解释最终目标是什么,因为听起来你现在走错了路
标签: c++ c function-call memory-address