共享內存如何在DLL中工作?DLL中的共享內存
當DLL連接到進程時,它使用與進程相同的內存地址。假設我們在DLL中有以下函數:
int * data = 0;
int foo()
{
if (!data) data = new int(random());
return *data;
}
當進程A調用這個函數時,它會創建新的對象(int)並返回它的值。 但是現在進程B附加了這個DLL。它調用foo(),但我不明白它將如何工作,因爲data
正在處理'內存空間。 B如何能夠直接使用它?
在進程之間共享內存需要OS API支持,並可在Windows下使用。 – kenny