我需要使用 DLL 来实现类似于 Linux 共享内存的功能。我的 Windows 编程经验很少,但我认为可以实现我的目标。我想要类似下面的东西:
动态链接库
int x;
void write(int temp)
{
x = temp
}
int read()
{
return x;
}
过程1:
LoadDLL();
write(5); //int x = 5 now
过程2:
LoadDLL();
printf(read()); //prints 5 since int x = 5 from Proccess 1
自然地,这个例子忽略了竞争条件等,但有没有一种简单的方法来处理这样的事情?
我将使用 Microsoft Visual Studio 10 创建 DLL。有人能解释一下我如何编写这么简单的东西并将其构建成一个可以加载和调用的 DLL,类似于上面的伪代码吗?
编辑:无法使用共享内存段和内存映射文件,因为我正在创建的进程在不支持上述内容的 LabVIEW 和 Lua 中。但是,它们确实支持 DLL,这就是我需要这种“过时”方法的原因。