大侠们来看看

sxz2008 2008-12-25 03:33:28
void __declspec(naked) ShowMsg ();
这个是我定义的函数,其中__declspec、(naked),这两个我不知道是什么意思
望知道的大侠能指点一二
...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunorr 2010-01-08
  • 打赏
  • 举报
回复
谁能告诉一下这个函数的用法啊?

在里面写的汇编总是出现段错误
sxz2008 2008-12-25
  • 打赏
  • 举报
回复
我想问的是有没有这两个关键字有什么区别?
谢谢
silverice 2008-12-25
  • 打赏
  • 举报
回复
这个关键字好像很少用到,就是声明一种规则,具体的还是看MSDN上的解释吧
MSDN 2005 的位置是
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vclang/html/69723241-05e1-439b-868e-20a83a16ab6d.htm
lbh2001 2008-12-25
  • 打赏
  • 举报
回复
通俗的将就是
使用__declspec(naked)关键字定义函数:
不产生 prolog 和 epilog 代码 {保存并恢复使用过的寄存器和分配局部变量、平衡堆栈、返回值}。

必须自己构建 EBP 指针 (如果用到了的话);
必须自己使用 RET 或 RET n 指令返回 (除非你不返回);


就呆在云上 2008-12-25
  • 打赏
  • 举报
回复
这个宏
google一下
我个人当它不存在
lbh2001 2008-12-25
  • 打赏
  • 举报
回复
__declspec(naked)就是不需要编译器帮你生成函数的栈框架,一切有自己来维护

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧