INT变量取值范围
1,INT变量取值范围,-32768~32767。
2,INT变量分为,短整型(short int ),长整型(long int),无符号型字节(unsigned int),有符号型字节(signed int ),无符号长整型(unsigned long)不同类型具体范围如下:short int -32768~32767signed int -32768~32767unsigned int 0~65535long int -2147483648~2147483647unsigned long 0~4294967295
delphi中DWORD是什么数据类型的?
避雷针的保护半径与高度(h)有关,以及与所现的保护半径有关,hr为滚球半径(闪击距离)第一类建筑物为hr=30米第二类建筑物为hr=45米第三类建筑物为hr=60米 保护范围采用规范之计算公式: Rx=?{h(2hr-h)}-?{hx(2hr-hx)} 其中Rx为避雷针在距离地面hx米处的保护半径(米); hr为滚球半径,根据建筑物类别取值30、45、60; hx为被保护物的高度 当避雷针高度大于滚球半径D时,h取值为D二、提前放电避雷针保护半径的计算方法(2)按《建筑物防雷设计规范》GB50057-2010建筑物的分类相关条款,对滚球半径hr取值,避雷针相对高度h;所以保护范围采用公式: Rp=?{h(2hr-h)+Δt(2hr+Δt)}计算举例计算一类建筑(易燃易爆场所等)35m避雷针的保护范围计算如下:避雷针高度h=35m;一类建筑物滚球半径hr=30m,被保护建筑物高度hx; 根据GB50057中规定:当避雷针高度h大于hr时,在避雷针上取高度等于hr的一点代替单支避雷针针尖作为圆心。
此处h=35米,大于hr,h取值hr,30米。
...
西门子PLC数据类型
bool 布尔量 就是开关量 只有 0,1byte 字节word 字 16位整数dword 双字 32位整数int 带符号16位整数dint 带符号32位整数real 浮点数 实数 32位适配器 就是plc 和电脑的 连接线 例如 MPI电缆 以s7300为例:S7-300的数据类型分以下三种:基本数据类型、复合数据类型和参数类型。
一、基本数据类型 1、位(bit) 常称为BOOL(布尔型),只有两个值:0或1。
如:I0.0,Q0.1,M0.0,V0.1等。
2、字节(Byte) 一个字节(Byte)等于8位(Bit),其中0位为最低位,7位为最高位。
如:IB0(包括I0.0~I0.7位),QB0(包括Q0.0~Q0.7位),MB0,VB0等。
范围:00~FF(十进制的0~255)。
3、字(Word) 相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,因此,字为16位。
如:IW0是由IB0和IB1组成的,其中I是区域标识符,W表示字,0是字的起始字节。
需要注意的是,字的起始字节(如上例中的“0”)都必须是偶数。
字的范围为十六进制的0000~FFFF(即十进制的0~65536)。
在编程时要注意,如果已经用了IW0,如再用IB0或IB1要特别加以小心。
4、双字(Double Word) 相邻的两个字(Word)组成一个双字,来表示一个无符号数。
因此,双字为32位。
如:MD100是由MW100和MW102组成的,其中M是区域标识符,D表示双字,100是双字的起始字节。
需要注意的是,双字的起始字节(如上例中的“100”)和字一样,必须是偶数。
双字的范围为十六进制的0000~FFFFFFFF(即十进制的0~4294967295)。
在编程时要注意,如果已经用了MD100,如再用MW100或MW102要特别加以小心。
以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。
5、16位整数(INT,Integer) 整数为有符号数,最高位为符号位,1表示负数,0表示正数。
范围为-32768~32767。
6、32位整数(DINT,Double Integer) 32位整数和16位整数一样,为有符号数,最高位为符号位,1表示负数,0表示正数。
范围为-2147483648~2147483647。
7、浮点数(R,Real) 浮点数为32位,可以用来表示小数。
浮点数可以为:1.m*2e,其存储结构如图所示: 8、常数的表示方法 常数可以是字节、字或双字,CPU以二进制方式存储,也可以用十进制,十六进制ASCII码或浮点数形式来表示。
如下图所示: 说明:(1)S5T#格式为:S5T#aD_bH_cM_dS_eMS,其中a,b,c,d,e分别是日,小时,分,秒和毫秒的数值,输入时可以省掉下划线,如表中所示。
(2)D#取值范围为:D#1990_1_1~D#2168_12_31。
二、复合数据类型 用户通过复合基本数据类型而生成就是复合数据类型。
复合数据类型包括以下几种: 1、数组(ARRAY) 将一组同一类型的数据组合在一起组成一个单位就是数组。
2、结构(STRUCT) 将一组同不同类型的数据组合在一起组成一个单位就是结构。
3、字符串(STRING) 字符串是由最多254个字符组成的一维数组。
4、日期和时间(DATE-AND-TIME) 用于存储年、月、日、时、分、秒、毫秒和星期的数据。
占用8个字节,BCD编码。
星期天代码为1,星期一~星期六代码分别是2~7。
如:DT#2004_07_15_12:30:15.200为2004年7月15日12时30分15.2秒。
5、用户定义的数据类型(UDT,User-Defined Data Types) 由用户将基本数据类型和复合数据类型组合在一起形成的数据类型。
可以在数据块DB和变量声明表中定义复合数据类型。
三、参数类型 是为在逻辑块之间传递参数的形参(Formal Parameter,形式参数)定义的数据类型。
windows文件夹太大,怎么清理?
我来解释一下,这种现象是正常的你的hook是导入表hook说白了只能hook到程序静态引入的函数如果你在程序中使用::MessageBox则最终程序中确实引入了user32.dll中的MessageBoxA函数,这样可以hook到如果你用CWnd::MessageBox来调用就不行了或许你也知道CWnd::MessageBox最终也是调用了::MessageBox但是你的程序没有直接导入::MessageBox因为CWnd::MessageBox也是一个导出函数,具体名字大约是msvc60.dll之类的是一个MFC的支持库因此你hook导入表的时候根本找不到::MessageBox的引入而只能找到CWnd::MessageBox的引入(这个引入的名字很复杂,是变形过的)所以你的hook无法成功///////////////////////////////////////////////////////////////你所提到的问题恰恰是导入表式hook的局限性只有改变hook的形式才能根本上解决这个问题新的hook方式就是inline hook网上有许多资料你去查查吧
请问VC 中怎么加音乐,谢谢!!
使用 PlaySound 函数就行了,PlaySound 函数原型为: BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound); 你的是基于对话框的应用程序,可以在对话框上加一个按钮,在按钮按下的时候播放音乐。
那么在按钮按下的消息响应函数中添加如下代码:PlaySound("Sound.wav", NULL, SND_FILENAME | SND_ASYNC); 其中,Sound.wav是你要播放的音乐的文件名,和程序在一个文件夹内,一定要转换成wav格式,像千千静听等很多软件都可以转。
另外,在文件的开头一定要添加下面两句代码(写在按钮按下的消息响应函数的前面就行了):#include #pragma comment(lib, "WINMM.LIB")祝你成功!
如何正确设置电脑的缓存
在电脑系统中,硬件运行速度的快慢基本由缓存决定,缓存的容量越大,相应的硬件运行速度也就越快。
缓存的应用几乎遍及所有的硬件,比如CPU、硬盘、刻录机等,甚至是软件也有缓存。
什么是缓存?简单来说缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。
由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行,因此,我们要不惜使出一切手段来增加硬件的缓存,让机器“飞”起来,以下就介绍几种增加缓存的方法。
CPU的缓存CPU的缓存分二级:L1(一级缓存)和L2(二级缓存),当处理器要读取数据时,首先要在L1缓存中查找,其次才是L2缓存,最后才是系统内存。
如果有一天你发觉自己的电脑慢了很多,进入到Windows桌面也要几分钟,这时候就要检查一下CPU的一、二级缓存有没有打开。
在BIOS设置中的Standard CMOS Setup(标准CMOS设定)有两项是用来打开或关闭缓存的:CPUInternal Cache设为Enable时开启CPU内部的一级缓冲区,若设置为Disabl则为关闭,这时系统性能将大大降低;ExternalCache选项是控制主板上二级缓冲区,如果主板上有二级缓存则应设成Enable。
硬盘的缓存点击电脑桌面上的“开始”/“运行”,键入“Msconfig”启动“系统配置实用程序”,跟着选中“system.ini”标签下的“Vcache”项,就可以根据系统的实际情况来调节硬盘的缓存了。
在该选项中一般会有三行内容:ChunkSize=1024、MaxFileCache=10240和MinFileCache=10240;其中第一行是缓冲区读写单元值,第二、三行是硬盘的最大和最小缓冲值,等号后的数值都是可以修改的,只要右键单击选中任一行就可以进行修改了。
如果你的内存是128MB的话,上面这三行的取值就比较合理了,当然也可以自定。
如果不知道该如何设置合适的缓冲值,请“Windows优化大师”帮忙吧,这个软件中有一个“磁盘缓存优化”项,用鼠标就可以方便地设置好缓存;又或者让“Windows优化大师”自动帮你进行优化设置。
当硬盘的缓存值足够大时,硬盘就不用频繁地读写磁盘,一来可以延长硬盘的寿命,二来也可以提高数据的传输速度。
另外,将硬盘的“文件系统缓存”设置为“网络服务器”,可以加快系统对硬盘的访问速度,因为文件系统缓存里存放了硬盘最近被访问过的文件名和路径,缓存越大所能储存的内容也就越多。
如果点击“控制面板”/“系统”/“性能”/“文件系统”/“硬盘”,将“此计算机的主要用途”由“台式机”改为“网络服务器”,可以将原来10K左右的缓存增加至近50K左右。
软驱和光驱的缓存 一般来说,软驱读写数据的速度都比较慢,这是因为盘片的转速不能太高,但是,我们可以提高软驱的读写缓存,让软驱一次读写更多的数据。
方法是:在桌面上的“开始”/“运行”框中键入“Regedit”运行注册表编辑器,依次进入HKEY-LOCAL-MACHINE\System\CurrentControlSet\Services\Class\FDC\0000,新建一个为ForeFifo的“DWORD值”,将其值设为“0”,这样就对软驱进行了软提速。
很多人都知道右键单击桌面“我的电脑”图标,选“属性”/“性能”/“文件系统”/“CD-ROM”,将最佳的访问方式设为“四倍速或更高速”,将追加的高速缓存大小滑块拖到最大处,可以明显提高光驱的读盘速度。
除了这种方式,我们还可以在注册表中设置缓冲值,方法是:进入到注册表,在HKEY-LOCAL-MACHINE\System\CurrentControlSet\Control\FileSystem\CDFS下,将CacheSize(缓存值的大小)和Prefetch(预读文件大小)两项进行手工调整,只要右键单击要选的项就可以进行修改了。
IE浏览器的缓存 IE的缓存默认存放位置在c:\windows\Temporary InternetFiles,调节缓存的大小办法是:依次点击IE中的“工具”/“Internet选项”/“Internet临时文件”中的“设置”选项,将“使用磁盘的空间”滑块向右拖动来调节缓存的大小。
应该说明的是,加大IE的缓存对提高上网速度并无帮助,它只可以将用来存放临时网页文件的硬盘空间增大,使IE出错的机会相对减少。
(Cache memory)是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。
由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。
缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。
当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,如果有大缓存,则可以将那些零碎数据暂存在缓存中,减小外系统的负荷,也提高了数据的传输速度。
硬盘缓存的作用 主要起三种作用:一是预读取。
当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中(由于硬盘上数据存储时是比较连续的,所以读取命中率较高),当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速度远远高于磁...
Win7资源管理器和开始菜单鼠标右键不能用,提示Windows资源管理...
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage]@=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,\00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,\79,00,63,00,6f,00,6d,00,70,00,75,00,74,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,\00,34,00,30,00,30,00,00,00"MUIVerb"=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,\6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,\00,6d,00,79,00,63,00,6f,00,6d,00,70,00,75,00,74,00,2e,00,64,00,6c,00,6c,00,\2c,00,2d,00,34,00,30,00,30,00,00,00"SuppressionPolicy"=dword:4000003c"HasLUAShield"=""[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage\command]@=hex(2):25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,73,00,79,00,73,\00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,6d,00,63,00,2e,00,65,00,78,00,\65,00,20,00,2f,00,73,00,20,00,25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,\00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6f,00,\6d,00,70,00,6d,00,67,00,6d,00,74,00,2e,00,6d,00,73,00,63,00,00,00复制以上代码放入记事本,另存为(xx.reg)文件,双击导入即可
用MFC怎么做窗体
创建一个完整窗体要经历的步骤:1)设计一个窗口类;2)注册窗口类;3)创建窗口;4)显示及更新窗口。
第一步:windows 已经为用户定义了一个完整的窗口类,用户只需要将各个属性填满既可以。
窗口类是一个 结构体,其定义如下:typedef struct _WNDCLASS{ UINT style;//class style WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HANDLE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; }WNDCLASS; 第二步:用RegisterClass(&wndclass)来定义的窗口注册。
第三步:创建窗口1)定义一个句柄,然后用CreateWindow()来为句柄赋值。
函数用法参看MSDN。
创建窗口必须依据已经声明并且已经注册的窗口类型来创建。
HWND CreateWindow( LPCTSTR lpClassName,//定义的窗口类名 LPCTSTR lpWindowName,//窗口的名字,将会在标题栏上显示出来的 DWORD dwStyle,//窗口的风格(窗口的外观模式和功能按钮等等) int x,//窗口初始位置ws_usedefault int y,//同上 int nWidth,//窗口的宽度,可以用ws_usedefault int nHeight,//窗口高度,可以用ws_usedefault HWND hWndParent,//父窗口的句柄,单一窗口则设置为空 HMENU hMenu,//菜单的句柄,如果没有菜单则将这个句柄设置为空 HINSTANCE hInstance,//由系统进行分配标识 LPVOID lpParam//一般设置为空); 第四步:显示窗口 调用ShowWindow()函数来显示窗口。
ShowWindow( HWND hWnd,//要显示的窗口的句柄 int nCmdShow//显示窗口的模式,如:最大化最小花显示) 第五步:更新窗口 在显示窗口的函数调用完毕以后调用UpdateWindow()来对窗体进行更新 UpdateWindow(hwnd);//这个函数没有并不影响消息产生。
//消息循环 MSG msg;//定义了一个消息结构体变量 while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } /* GetMessage( LPMSG lpMsg,//消息结构提的指针,无需对这个消息结构提的内部成员初始化,//这个只需将定义的结构体的地址传到这里 HWND hWnd,//窗口句柄,指明要获得的是那个窗口的消息,如果要获取所有窗口的消息则//定义为NULL UINT wMsgFilterMin,//用来指定要从消息队列里边取得的最小值,UINT wMsgFilterMax//用来指定要从消息队列里边取得的最大值,/////////////////////////////////////////////////////////////////////////这两个参数用来限制GETMESSAGE 在消息队列里边的取值范围,////以去处调一些确定不感兴趣的消息 ////if要从消息队列中所有的消息中提取的话则两个参数均设定为 ////零 // /////////////////////////////////////////////////////////////////////// );//从调用程序线程消息队列中取消息*/ 有了创建窗口的整个流程以后,现在就开始定义窗口过程,用WindowProc() LRESULT CALLBACK WindowProc(/*函数名字可以更改,但是参数不允许改变*/ HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);//参数和消息结构提的前四个参数相同,事实上系统在调用窗口过程函数//的时候自动将消息结构体的前四个参数传递到窗口过程。
长的帅免费日