64位应用程序开发环境和工具简介
发布时间:2006-02-14 17:49:57 来源:天极开发 网友评论 0 条 在命令提示符窗口中构建
点击"开始à所有程序àMicrosoft Platform SDKàOpen Build EnvironmentàWindows XP 64-bit Build EnvironmentàSet Windows XP x64 Build Environment (Retail)",此时可打开一个命令提示符窗口,已设置为Windows XP x64应用程序生成环境,在此窗口下生成的程序可运行在Windows XP x64 Edition上。如果要调用编译器,键入cl.exe,要调用链接器,键入link.exe。键入cl/?、link/? 查看详细信息。
假设前段示例代码的文件名为:first64.cpp,存放在D盘根目录下。
在命令提示符窗口中键入:cl d:/first64.cpp bufferoverflowU.lib /EHsc,回车。
此处解释一下为什么这样调用编译命令,默认情况下,cl在编译完成之后会自动调用link,命令行中带上/EHsc是为了打开"C++例外(Exceptions)",以免出现编译器警告;微软的编译器从Visual Studio.NET 2002开始,默认设置了一个编译选项/GS,其作用是堆栈检查,以防止堆栈或缓冲区溢出此类问题的发生,即是阻止代码溢出攻击,所以必须链接bufferoverflowU.lib库。其详细情况如下:
·bufferoverflowU.lib:此函数库具体实现安全性 cookie 验证功能,此功能可以在用户模式中使用,也可以在使用 Win32 API 的应用程序中使用。大多数应用程序将链接到这个函数库。
·bufferoverflowK.lib:此函数库具体实现在操作系统内核模式中执行的安全性 cookie 检查。在内核模式中运行的服务与子系统应该链接到这个库。
·bufferoverflow.lib:此函数库具体实现可以在用户模式中使用的安全性 cookie 验证功能。不过它与 bufferoverflowU.lib 有所不同,它可以在不使用 Win32 API 的服务与应用程序中使用。
在集成开发环境中(IDE)构建
首先,点击"开始à所有程序àMicrosoft Platform SDKàOpen Build EnvironmentàWindows XP 64-bit Build EnvironmentàSet Windows XP x64 Build Environment (Retail)",它会自动设置好path、include、lib环境变量。
修改开始菜单中Visual C++ 2005 Express Edition的快捷方式,加上启动参数/useenv,如下"C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/VCExpress.exe" /useenv。
此时启动Visual C++ 2005 Express Edition的集成开发环境(IDE),加载前面所创建的工程,选择"Build"à"Configuration Manager",在Active solution configrration栏中选择New…
在此时弹出的对话框name中输入x64 Retail,在copy setting from中选择Release,此处的两项可根据你所想要生成的工程性质,自由选择;之所以这样做的目的,是为了方便在名称上区分32位与64位工程,同时也不会影响到原有工程的设置。
在编译生成工程之前,还需做如下设置:
1、 点击菜单"Project"à"Properties",打开"Configuration Properties" à"C++" à"General",确定"Detect 64-bit Portability Issues:"为"Yes(/Wp64)",以保证编译器检查工程的64位可移植性问题。
2、 打开"Configuration Properties" à"Linker" à"Input",在第一行"Additional Dependencies:"中加入bufferoverflowU.lib库。
3、 打开"Configuration Properties" à"Linker" à"Advanced",把"Target Machine"改为"Not Set";接下来点击左边的"Command Line",在"Additional options:"栏中加入"/MACHINE:AMD64"。
点击"确定"退出,接下来就可以生成工程了;如果生成过程中,提示找不到cl.exe、头文件、库等等之类的信息,可在菜单"Tools"à"Options…"à"Projects and Solutions"à"VC++ Directories"中检查有关目录是否设置正确,构建工程所需的全部相关文件都位于"C:/Program Files/Microsoft Platform SDK"下。这属于集成开发环境(IDE)的使用设置问题,不少文章都有介绍,此处不再赘述。
现在,你也可以编写64位应用程序了,是不是很简单呢;Visual C++ 2005与Platform SDK已经为64位编程做好了准备,你呢?
点击"开始à所有程序àMicrosoft Platform SDKàOpen Build EnvironmentàWindows XP 64-bit Build EnvironmentàSet Windows XP x64 Build Environment (Retail)",此时可打开一个命令提示符窗口,已设置为Windows XP x64应用程序生成环境,在此窗口下生成的程序可运行在Windows XP x64 Edition上。如果要调用编译器,键入cl.exe,要调用链接器,键入link.exe。键入cl/?、link/? 查看详细信息。
假设前段示例代码的文件名为:first64.cpp,存放在D盘根目录下。
在命令提示符窗口中键入:cl d:/first64.cpp bufferoverflowU.lib /EHsc,回车。
此处解释一下为什么这样调用编译命令,默认情况下,cl在编译完成之后会自动调用link,命令行中带上/EHsc是为了打开"C++例外(Exceptions)",以免出现编译器警告;微软的编译器从Visual Studio.NET 2002开始,默认设置了一个编译选项/GS,其作用是堆栈检查,以防止堆栈或缓冲区溢出此类问题的发生,即是阻止代码溢出攻击,所以必须链接bufferoverflowU.lib库。其详细情况如下:
·bufferoverflowU.lib:此函数库具体实现安全性 cookie 验证功能,此功能可以在用户模式中使用,也可以在使用 Win32 API 的应用程序中使用。大多数应用程序将链接到这个函数库。
·bufferoverflowK.lib:此函数库具体实现在操作系统内核模式中执行的安全性 cookie 检查。在内核模式中运行的服务与子系统应该链接到这个库。
·bufferoverflow.lib:此函数库具体实现可以在用户模式中使用的安全性 cookie 验证功能。不过它与 bufferoverflowU.lib 有所不同,它可以在不使用 Win32 API 的服务与应用程序中使用。
在集成开发环境中(IDE)构建
首先,点击"开始à所有程序àMicrosoft Platform SDKàOpen Build EnvironmentàWindows XP 64-bit Build EnvironmentàSet Windows XP x64 Build Environment (Retail)",它会自动设置好path、include、lib环境变量。
修改开始菜单中Visual C++ 2005 Express Edition的快捷方式,加上启动参数/useenv,如下"C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/VCExpress.exe" /useenv。
此时启动Visual C++ 2005 Express Edition的集成开发环境(IDE),加载前面所创建的工程,选择"Build"à"Configuration Manager",在Active solution configrration栏中选择New…
![]() |
在此时弹出的对话框name中输入x64 Retail,在copy setting from中选择Release,此处的两项可根据你所想要生成的工程性质,自由选择;之所以这样做的目的,是为了方便在名称上区分32位与64位工程,同时也不会影响到原有工程的设置。
![]() |
在编译生成工程之前,还需做如下设置:
1、 点击菜单"Project"à"Properties",打开"Configuration Properties" à"C++" à"General",确定"Detect 64-bit Portability Issues:"为"Yes(/Wp64)",以保证编译器检查工程的64位可移植性问题。
2、 打开"Configuration Properties" à"Linker" à"Input",在第一行"Additional Dependencies:"中加入bufferoverflowU.lib库。
3、 打开"Configuration Properties" à"Linker" à"Advanced",把"Target Machine"改为"Not Set";接下来点击左边的"Command Line",在"Additional options:"栏中加入"/MACHINE:AMD64"。
点击"确定"退出,接下来就可以生成工程了;如果生成过程中,提示找不到cl.exe、头文件、库等等之类的信息,可在菜单"Tools"à"Options…"à"Projects and Solutions"à"VC++ Directories"中检查有关目录是否设置正确,构建工程所需的全部相关文件都位于"C:/Program Files/Microsoft Platform SDK"下。这属于集成开发环境(IDE)的使用设置问题,不少文章都有介绍,此处不再赘述。
现在,你也可以编写64位应用程序了,是不是很简单呢;Visual C++ 2005与Platform SDK已经为64位编程做好了准备,你呢?
相关文章
上一篇文章:WEB2.0 引发新一轮淘金潮 盈利尚需时日
下一篇文章:最后的侠客——当Borland已成往事
- 推荐阅讯
- MySQL安全性指南 (2)(转)
- 创建基于AJAX技术的Scribble应用程序
- WEB2.0开发之AJAX:HTML++同Client/SOA
- Web 2.0中AJAX技术应用详解
- 什么是Web 2.0?
- 三大编程语言性能PK:Java, C/C++和Ruby
- 开源Eclipse风头正劲 Sun态度若明若暗
- 程序员建立商业意识之玩技术与利用技术
- 为什么要用UML建模之建模原理
- J2ME网络编程以及网络游戏的实现
- 阅读排行
- 1..net页面间的参数传递简单实例
- 2.VC++与Matlab混合编程之引擎操作详解
- 3.Oracle数据库数据对象分析
- 4.Eclipse3.2+Tomcat5.5.17+Oracle9配置
- 5.Oracle数据库中索引的维护
- 6.在Oracle的网络结构中解决连接问题
- 7.Oracle数据安全面面观
- 8.Oracle数据库的ORA-00257故障解决过程
- 9.Oracle数据库备份与恢复的三种方法
- 10.Oracle与SQL Server在企业应用中的比较
- 专题教程
- Windows Server-Windows Server文档-Windows Server新闻-Windows Ser PostgreSQL-PostgreSQL文档-PostgreSQL新闻-PostgreSQL专家
- WebLogic-WebLogic文档-WebLogic新闻-WebLogic专家 FreeBSD-FreeBSD文档-FreeBSD新闻-FreeBSD专家
- Linux-内核 GUI KDE Gnome DNS FTP 安全 安装-Linux专区 Windows-AD IIS ServerCore 虚拟化 安全 HPC-Windows专区
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册


