Visual Studio是一款非常强大的IDE工具,它为我们提供了强大的编码、调试和测试等工具,为我们编好.NET软件提供了强大的支持。
今天早晨想到了Visual Studio编译模式中的CPU类型选项,所以写一下以记录。
从图中可以看到配置项和平台项。
点击“配置管理器”,打开配置窗口。
当然,这里的“活动解决方案配置”可以选择“Debug”和“Release”两项,分别对应调试版本和发布版本。这个在代码中我们可以编写调试代码以进行调试。
在”活动解决方案平台“中,就有”Any CPU”、”.86”、”.64“项。
这里可以选择的是x86的32位平台和x64的64位平台。
有时候还会有下列平台:
我们知道,现在的计算机系统分为32位和64位两种,所以对应的就有32位和64位的应用程序。
打开Windows任务管理器,可以看到32位和64位程序的显示区别(这里我的操作系统是windows 7 Professional 64位 with sp1)。
再来看看Visual Studio中的编译项,这里我们看看Debug和Release的区别。
看看输出。
再切换到Release,查看输出。
这里看不出什么问题,文件大小也是一致的。但是在实际的编译过程中,已经有调试项和发行项的区别了。
从上面我们可以看出,选择了x86生成的32位DLL和选择了x64生成的64位DLL从文件上是看不出问题来的。
但是我们都有一点常识,那就是32位程序可以运行在32位和64位的操作系统上;而64位程序只能运行在64位操作系统上。这个是因为CPU的位长而决定的。
从这里我们可以看出Visual Studio的强大和兼容性了。一般我们在编译的时候就选择”Any CPU“项就可以了,编译器会自动处理,而在实际的运行过程中也不需要考虑32位或者64位的操作系统,同样都能运行(这个因为.Net是一种编译性语言所决定的)。但是有一些Visual Studio 6所编译的程序暂时只能编译出32位的应用程序,所以如果迁移到.NET平台的话,那就需要编译成32位或者64位的编译器来进行编译以适应运行环境的问题了。
Ps.今天是周六,本人来这里墨迹了一下,写此文完全是因为想到了Any CPU项,在最后,祝大家周末快乐。。。
本文链接:.Net编译之AnyCPU - 进阶者系列 - 学习者系列文章,转载请注明。
一、前言
Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力。而且Velocity被移植到不同的平台上,如.Net的NVelocity和js的Velocity.js,虽然各平台在使用和实现上略有差别,但大部分语法和引擎核心的实现是一致的,因此学习成本降低不少哦。
最好的学习资源——官网:http://velocity.apache.org/
本系列打算采用如下结构对Velocity进行较为全面的学习,若有不妥或欠缺望大家提出,谢谢。
2. VTL语法详解
3. 模板与宿主环境通信
4. 基础配置项
5. 深入模板引擎及调优配置
二、VTL语法详解
VTL的语句分为4大类:注释、直接输出的内容、引用和指令。另外由于VTL中以 # 和 $ 作为关键字起始字符,因此输出它们时需要通过转义符 \ 来将其转换为普通字符。
由于内容较多,特设目录一坨!
六. 指令(#set、#if、#foreach、#include、#parse、#break、#stop、#macro、#define、#evaluate)
块注释内容1
块注释内容2
*#
文档注释内容1
文档注释内容2
*#
踩过的坑
块注释和文档注释虽然均不输出到最终结果上,但会导致最终结果出现一行空行。使用行注释则不会出现此情况。
也就是不会被引擎解析的内容。
直接输出的内容1
直接输出的内容2
]]#
引用语句就是对引擎上下文对象中的属性进行操作。语法方面分为常规语法( $属性 )和正规语法( ${属性} )。在普通模式下上述两种写法,当引擎上下文对象中没有对应的属性时,最终结果会直接输出 $属性 或 ${属性} ,若要不输出则需要改写为 $!属性 和 $!{属性} 。
1. 变量(就是引擎上下文对象的属性)
${变量名}, 常规写法,若上下文中没有对应的变量,则输入字符串"${变量名}"
$!变量名, 常规写法,若上下文中没有对应的变量,则输入空字符串""
$!{变量名}, 常规写法,若上下文中没有对应的变量,则输入空字符串""
变量的命名规则:
由字母、下划线(_)、破折号(-)和数字组成,而且以字母开头。
变量的数据类型为:
Integer、Long等简单数据类型的装箱类型;
String类型;
Object子类;
Object[] 数组类型,从1.6开始Velocity将数组类型视为 java.util.List 类型看待,因此模板中可调用 size() 、 get(int index) 和 isEmpty() 的变量方法;
java.util.Collection子类;
java.util.Map子类;
java.util.Iterator对象;
java.util.Enumeration对象。
${变量名.属性}, 正规写法
$!变量名.属性, 常规写法
$!{变量名.属性}, 正规写法
属性搜索规则:
Velocity采用一种十分灵活的方式搜索变量的属性, 具体如下:
// 变形和尝试的顺序如下
1. $var.getprop()
2. $var.getProp()
3. $var.get("prop")
4. $var.isProp()
// 对于$var.Prop则如下
1. $var.getProp()
2. $var.getprop()
3. $var.get("Prop")
没有评论:
发表评论