【发布时间】:2012-03-19 11:52:03
【问题描述】:
我有一个带有源代码的 dll,但它还不是线程安全的。 dll非常复杂,需要很长时间才能使其线程安全。所以我想出了一个想法,就是独立运行几个 Dll 的“副本”。最简单的方法可能是创建 N 个重命名的 Dll 副本并为每个线程加载一个单独的 Dll。
这是一个可能的解决方案吗? 有没有更好的类似方法? 是否可能存在一些包装代码?
我知道这根本不是一个好的工程解决方案。请不要怪我。但它可能会解决一些问题。
2017 年编辑
我已经这样做了,它可以正常工作。伟大的! 请注意以下几点:
http://msdn.microsoft.com/en-us/library/2s9wt68x%28v=vs.80%29.aspx
如果 DLL 将任何非本地数据或对象声明为 __declspec(thread),则在动态加载时可能会导致保护错误。
【问题讨论】:
标签: windows multithreading visual-c++ dll