• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > COM里面不支持TLSThreadLocalStorage吗?

COM里面不支持TLSThreadLocalStorage吗?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了云的com操作支持库,初始化com支持库失败,com的支持,支持dr.com的wifi,com支持库等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: COM 里面不支持TLSThread Local Storage 吗?
描述:

我在COM里面写了下面的代码出错了:
__declspec(thread) static int num = 321;
void test()
{
int i = num; // got an error " Access violation reading location 0x00000000."
num = 332211;
Sleep(5000);
i = num;
}
然而这个代码在普通的dll中可以运行。
如果com不支持的话,我想问下在com有个static的全局变量,如果想在com里面实现多线程,而且每个线程都能单独维护自己的这个static的全局变量,如何做到?
谢谢!


解决方案1:

你的客户端也是VC的程序吗? 
这种静态的TLS定义有些危险"__declspec(thread)"。就是LoadLibrary有可能不初始化__tls_index,这样你就出现0x000000了(因为你的__tls_index没有初始化)。 COM 其实就是个LoadLibrary,我估计很可能没有叫LdrInitializeTls。(不敢100%肯定,我得查一下)。但是静态使用在Kernel初始化的时候100%会叫这个。
你随便写个程序,直接LoadLibrary=》Test,看有没有类似问题。 还是尽量少用TLS了,如果一定要用还是动态分配安全些。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • COM里面不支持TLSThreadLocalStorage吗?
  • com是否必须注册在操作系统下呢?
  • COM里面不支持TLSThreadLocalStorage吗?

相关文章

  • 2017-06-04 关于接口地址的问题
  • 2017-06-05 vc调用vb编写的COM
  • 2017-06-05 拦截api的一些菜鸟问题
  • 2017-06-04 急问:关于创建ADO全局对象的问题;在线等
  • 2017-06-05 如何将这么多文件组合成dll?
  • 2017-06-05 如何制作DLL
  • 2017-06-04 如何从ColeVariant对象中取出以零结尾的字户串
  • 2017-06-05 ?有谁想要呢?
  • 2017-06-04 在web中切换输入法
  • 2017-06-04 运行DCOM和COM+的客户端必需加入服务器端的域吗?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何调试跟踪vc60的ocx控件的代码?
    • 如何在程序中调用其他的程序
    • wtl对话框中如何实现WindowProc?
    • COM+应用程序的配置问题!????十分郁闷和着急,请大家指点!
    • 怎么样用最简单的方法用WriteProcessMemory写入一大段16进制数据?
    • 知道一个线程的名称,通过程序怎么知道是否在运行?
    • 数字金刚和各位高手,救命!!!
    • Activex控件部署到IIS上后不可以用
    • 不安装Excel,能用OLE操作excel吗?
    • 关于IAdviseSink的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有