DLL动态链接库相关问题

有哪些类型的函数不能放到动态链接库中供不同进程同时访问?为什么?

一般来说dll不同进程同时访问是没问题的,因为进程地址隔离,不存在数据同步的问题。但是如果同时读写某个设备、文件等操作系统上唯一的设备或者dll编写者有意为之,才不行。

需要你dll中的函数是否有跨进程共享的东西。如果有全局的dll自己没有-处理好就可能导致不能同时多个进程共同处理。

一般来说,共享的代码最好是可重入的代码,这样在多线程环境下才不会产生冲突。假如代码中含有全局变量或者静态变量(例如C标准库中的errno就是一个全局变量),在一个进程中对某个变量造成的修改可能会对另一个进程产生影响。