Bep*_*ppe 3 dll multithreading
我有一个使用静态线程本地存储(__declspec(thread))的DLL(用C编写),我想从Visual Basic图形界面使用这个DLL.
__declspec(thread)
不幸的是,当在Windows XP上运行该接口时,使用静态线程本地存储的DLL在尝试访问其线程变量时崩溃.
我怎么解决这个问题?
感谢和问候
GB
PS我想不修改DLL.
Dav*_*nan 5
这是静态TLS 的已知限制.虽然您没有显式调用LoadLibrary(),但VB运行时代表您这样做.
LoadLibrary()
请注意,此限制已从Vista中解除.我所知道的最全面的参考文献是Ken Johnson的博客.
如果你可以在生成的.exe的导入表中包含DLL,你可能能够解决这个问题,这可能涉及一些PE黑客攻击,而且我很不确定它是一个可行的策略.否则你需要更改DLL.
归档时间:
14 年,8 月 前
查看次数:
1891 次
最近记录:
13 年,7 月 前