我得到的第二個是由第一個使用以下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來達到我的目的,您提出什麼方法來訪問?
不,volatile不允許跳過地址空間。 – janm 2010-08-26 08:38:17
嗯......不。 volatile - 當天返回 - 表示編譯器不應該通過在寄存器中「私下」保留一個變化的變量來進行優化,而是將更改寫回到其他線程/中斷處理程序等期望當前值的實際內存位置現在 - 在所有多級內存緩存和內核中,volatile不足以確保刷新到某個通常可見的級別。通常使用互斥鎖,儘管在存儲級別上可以使用各種存儲屏障指令。 – 2010-08-26 08:39:58
啊。我有點期待volatile會仍然神奇地允許在proccesses中使用內存。 – Raynos 2010-08-26 08:48:49