• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
thankgoodness
博客园    首页    新随笔    联系   管理    订阅  订阅

win32编程详解

表4-1 应用程序的进入点

应用程序类型 进入点 嵌入可执行文件的启动函数
需要ANSI字符和字符串的GUI应用程序 WinMain WinMainCRTStartup
需要Unicode字符和字符串的GUI应用程序 wWinMainw WinMainCRTStartup
需要ANSI字符和字符串的CUI应用程序 main mainCRTStartup
需要Unicode字符和字符串的CUI应用程序 wmain wmainCRTStartup

可以从应用程序中全部删除/ S U B S Y S T E M 链接程序开关。当这样做的时候,链接程序能够自动确定应 用程序应该连接到哪个子系统。当进行链接时,链接程序要查看代码中存在4 个函数(Wi n M a i n 、w Wi n M a i n 、m a i n 或w m a i n ) 中的哪一个。然后确定可执行程序应该是哪一个子系统,并且确定可执行程序中应该嵌入哪个C / C + +启动函数。

                    程序能够使用的C / C + +运行期全局变量

变量名 类型 说明
_osver unsigned int 操作系统的测试版本。例如Windows 2000 Beta 3是测试版本2031 。因此_osver的值是2031
_winmajor unsigned int 采用十六进制表示法的Windows主要版本。对于Windows2000来说,它的值是5
_winminor unsigned int 采用十六进制表示法的Windows次要版本。对于Windows2000来说,它的值是0
_winver unsigned int ( _winmajor < < 8 ) + _ winminor在命令行上传递的参数号
__argc unsigned int 带有指向ANSI/Unicode字符串的指针的__argc大小的数组
__argv char * * 带有指向ANSI/Unicode字符串的指针的__argc大小的数组
__wargv wchar_t * * 每个数组项均指向一个命令行参数
_environ char * * 指向ANSI/Unicode字符串的指针的数组。每个数组项指向一个环境字符串
_wenviron wchar_t * * 指向ANSI/Unicode字符串的指针的数组。每个数组项指向一个环境字符串
_pgmptr char * 正在运行的程序的ANSI/Unicode全路径和名字
_wpgmptr wchar_t * 正在运行的程序的ANSI/Unicode全路径和名字
可执行文件的映像加载到的基地址是由链接程序决定的。不同的链接程序可以使用不同的默认基地址。Visual C++链接程序使用的默认基地址是0 x 0 0 4 0 0 0 0 0 ,因为这是在运行Wi n d o w s9 8 时可执行文件的映象可以加载到的最低地址。可以改变应用程序加载到的基地址,方法是使用M i c r o s o f t 的链接程序中的/ B A S E : a d d r e s s 链接程序开关。
posted @ 2008-04-15 10:09  宇晨  阅读(445)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3