微软资料:invalidApartmentStateChange MDA
文章:C# ApartmentState 枚举,指定线程单元状态
成员名称 | 说明 | |
---|---|---|
MTA | ||
STA | ||
UnkNown |
ApartmentState 未设置属性。 |
由于无法控制进程内服务器的加载或卸载顺序,因此不要从dllmain函数调用coInitialize、coInitializeEx或couninitialize。
Because there is no way to control the order in which in-process servers are loaded or unloaded,
do not call CoInitialize,CoInitializeEx,or CoUninitialize from the DllMain function.
CSDN介绍:在DLL中如何使用Coinitialize和CoUnitialize?
前辈总结:
1). 不要在dll中 初始化COM组件。因为你不知道 调用者 COM 模型是啥。当然多数是 apartment2). 而且,根据你初始化代码使用的COM模型,调用 dllmain的 不一定是调用导出方法的调用者线程,CoInitialize 不一定生效。最好让调用者初始化 com 环境,如果此dll的调用者也是个dll,见1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。