panzhenjie
驱动牛犊
驱动牛犊
  • 注册日期2005-02-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望69点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
阅读:1219回复:1

问一个vc里#pragma的用法,有说明,可我还是没看懂:(

楼主#
更多 发布于:2005-07-12 13:46
  #pragma alloc_text( "textsection", function1, ... )

命名特别定义的函数驻留的代码段。该编译指示必须出现在函数说明符和函数定义之间。

alloc_text编译指示不处理C++成员函数或重载函数。它仅能应用在以C连接方式说明的函数――就是说,函数是用extern "C"连接指示符说明的。如果你试图将这个编译指示应用于一个具有C++连接方式的函数时,将出现一个编译程序错误。

由于不支持使用__based的函数地址,需要使用alloc_text编译指示来指定段位置。由textsection指定的名字应该由双引号括起来。

alloc_text编译指示必须出现在任何需要指定的函数说明之后,以及这些函数的定义之前。

在alloc_text编译指示中引用的函数必须和该编译指示处于同一个模块中。如果不这样做,使以后一个未定义的函数被编译到一个不同的代码段时,错误会也可能不会被捕获。即使程序一般会正常运行,但是函数不会分派到应该在的段。

alloc_text的其它限制如下:

它不能用在一个函数内部。

它必须用于函数说明以后,函数定义以前。
mingfa
驱动牛犊
驱动牛犊
  • 注册日期2002-11-15
  • 最后登录2008-11-03
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望20点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-07-18 23:09
These #pragmas help reduce the memory that your driver uses.

For instance, #pragma alloc_text(INIT,DriverEntry)

it tags the named function DriverEntry as
belonging to the INIT section. This section is pageable and discardable
after driver initialization.

Instead of "INIT" you can also use "PAGE" to tag functions as pageable.
游客

返回顶部