declspec的用法小结

目前学了三个declspec的用法:


1.线程局部存储TLS机制:(在全局变量或静态变量前加上标识符__declspec(thread)就变为私有变量)

// 定义静态TLS全局变量
__declspec(thread)  int __TlsValue = 0;


2.

__declspec(naked)加在函数的定义前,代表函数的栈区是要由其自己写汇编开辟的,不加的时候(一般),都是由操作系统为其开辟堆栈。

所以通常写法都是:
__declspec(naked) 
    void Sub_1()
{
_asm
{


}
}

3._declspec(dllexport)动态库导出

_declspec(dllexport)加在函数的定义前,代表函数以动态库的形式导出。

//注意这里前面是单下滑线。


#8.13补充:

_declspec  (dllexport)是“静态导出”;lib的形式,

使用方法:函数已经初始化到导入表里了,操作系统已加载,可以直接使用。


extern "C" __declspec (dllexport)和_declspec(dllexport)区别
查看PEcheck,
实际上是函数导入名称的区别.

extern "C"的意思:
兼容C语言,执行C语言运行库。(一般默认为C++运行库)








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值