一些tip,如何检测是否安装.net及其版本
2011-05-12 10:18
120 查看
从http://blog.csdn.net/trcj1/archive/2009/08/29/4496935.aspx摘取了一部分
字节对齐
#program pack(x) //x=1,2,4,8,16...默认为8
每当一个结构的成员变量要定位时,取该成员变量的长度与x中间的最小值作为标准,该成员变量的偏移量(offset)必须能够被该值整除。当所有的成员都定位完成后,再次取该结构体中最宽成员的长度与x中间的最小值作为标准,整个结构体的大小必须能够被该值整除。
.NET环境编程tip
任何.NET环境下编写的程序都需要安装.NET框架才能运行(注意默认情况下C++语言编写的程序不需要.NET框架的CLR即运行,通过制定一个新的开关,C++编译器也能够产生出需要CLR才能执行的托管模块),我们可以通过再%windir%/system32目录下查找MSCorEE.dll文件来判断该机器是否安装了.NET框架。如果存在则证明已安装。如果想确定安装了哪些版本的.NET框架,可以查看如下注册表键下的子键:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NETFramework/policy
C VS .NET
C语言运行时堆分配内存基于链表,.NET CLR托管堆分配则基于连续的内存块,故.NET分配对象要比C快得多;
.NET在垃圾回收后要用到memcpy函数压缩托管堆,所以会给应用程序带来不小的性能损伤,其性能比C运行时的堆的性能低。
Win32平台下的微软C编译器(cl.exe for 80x86)在默认情况下采用如下的对齐规则
任何基本数据类型T的对齐模数就是T的大小,即sizeof(T)。比如对于double类型(8字节),就要求该类型数据的地址总是8的倍数,而char类型数据(1字节)则可以从任何一个地址开始。Linux下的GCC奉行的是另外一套规则(在资料中查得,并未验证,如错误请指正):任何2字节大小(包括单字节吗?)的数据类型(比如short)的对齐模数是2,而其它所有超过2字节的数据类型(比如long,double)都以4为对齐模数。
猜测:
DX的版本检查是否可以通过在%windir%/system32下查找某个特殊的dll来进实现呢?
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/trcj1/archive/2009/08/29/4496935.aspx
字节对齐
#program pack(x) //x=1,2,4,8,16...默认为8
每当一个结构的成员变量要定位时,取该成员变量的长度与x中间的最小值作为标准,该成员变量的偏移量(offset)必须能够被该值整除。当所有的成员都定位完成后,再次取该结构体中最宽成员的长度与x中间的最小值作为标准,整个结构体的大小必须能够被该值整除。
.NET环境编程tip
任何.NET环境下编写的程序都需要安装.NET框架才能运行(注意默认情况下C++语言编写的程序不需要.NET框架的CLR即运行,通过制定一个新的开关,C++编译器也能够产生出需要CLR才能执行的托管模块),我们可以通过再%windir%/system32目录下查找MSCorEE.dll文件来判断该机器是否安装了.NET框架。如果存在则证明已安装。如果想确定安装了哪些版本的.NET框架,可以查看如下注册表键下的子键:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NETFramework/policy
C VS .NET
C语言运行时堆分配内存基于链表,.NET CLR托管堆分配则基于连续的内存块,故.NET分配对象要比C快得多;
.NET在垃圾回收后要用到memcpy函数压缩托管堆,所以会给应用程序带来不小的性能损伤,其性能比C运行时的堆的性能低。
Win32平台下的微软C编译器(cl.exe for 80x86)在默认情况下采用如下的对齐规则
任何基本数据类型T的对齐模数就是T的大小,即sizeof(T)。比如对于double类型(8字节),就要求该类型数据的地址总是8的倍数,而char类型数据(1字节)则可以从任何一个地址开始。Linux下的GCC奉行的是另外一套规则(在资料中查得,并未验证,如错误请指正):任何2字节大小(包括单字节吗?)的数据类型(比如short)的对齐模数是2,而其它所有超过2字节的数据类型(比如long,double)都以4为对齐模数。
猜测:
DX的版本检查是否可以通过在%windir%/system32下查找某个特殊的dll来进实现呢?
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/trcj1/archive/2009/08/29/4496935.aspx
相关文章推荐
- 如何检测当前机器中是否安装Office 及其版本??
- 如何检测是否和的SQL Server或MSDE版本安装
- 如何用JavaScript判断客户端浏览器是否安装了Flash插件,及其版本?
- 如何用JavaScript判断客户端浏览器是否安装了Flash插件,及其版本
- js检测flash是否安装,及其版本
- 如何检测是否安装了.NET 2.0和.NET 3.0
- 如何用JavaScript判断客户端浏览器是否安装了Flash插件,及其版本?【转】
- 《CLR Via C#》 如何查看计算机是否安装了.NET Framework及其版本
- 如何检测是否安装了.NET 2.0和.NET 3.0 [ZT]
- 检测浏览器是否安装了flash及其版本
- 如何用JavaScript判断客户端浏览器是否安装了Flash插件,及其版本?
- 如何检测是否和哪个版本的MS Access安装
- 如何判断某版本的.NET Framework是否安装
- 检查机器是否安装了.NET Framework 或已经安装了哪些.net版本
- 综合应用WPF/WCF/WF/LINQ之十八:检测客户端是否安装有.NET 3.0
- 如何检测IE浏览器安装的版本
- [windows]如何在batch脚本中检测系统是否安装了python和pip
- 如何检测已安装的Microsoft.Net Framework的版本
- C#winform检测电脑安装的.netframework版本和是否安装了某软件
- 检测.net framework版本,判断是否安装了service pack