我有两个控制台进程,第二个是由第一个使用以下 API 创建的:
BOOL WINAPI CreateProcess(
__in_opt LPCTSTR lpApplicationName,
__inout_opt LPTSTR lpCommandLine,
__in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes,
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in BOOL bInheritHandles,
__in DWORD dwCreationFlags,
__in_opt LPVOID lpEnvironment,
__in_opt LPCTSTR lpCurrentDirectory,
__in LPSTARTUPINFO lpStartupInfo,
__out LPPROCESS_INFORMATION lpProcessInformation
);
现在我想知道,如果我通过 IpCommandLine 将指向第一个进程的一部分内存的指针传递给第一个进程调用的第二个进程,将读取该指针指向的内存点,第二个过程肯定会导致访问冲突错误,或者它是否受该 API 某些参数值的约束? 如果我不能单独使用此 API 来达到我的目的,您建议使用什么方法进行访问?
最佳答案
您可以使用 ReadProcessMemory/WriteProcessMemory API 访问此内存。另一个进程需要知道进程的内存地址和句柄才能访问其内存。
关于c++ - 如何允许另一个进程创建的进程使用创建进程的一部分内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3573301/