- 博客(23)
- 资源 (4)
- 收藏
- 关注
转载 C中的volatile用法
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。例如: volatile int i=10; int j = i; ... int k = i;
2012-01-09 13:47:48
317
原创 工业自动化备忘录
OPC FoundationOPC 标准组织http://www.opcfoundation.org/ EUROMAP(Europe' s Association for plastics and rubber machinery manufacturers)塑机工业欧规标准组织http://www.euromap.org/ C# DEV Expre
2011-06-29 11:41:00
510
原创 Jonathan.Evans 个人简历
每周,每月维护一张个人简历,对自己而言是一种思考,一种认识; “一个人,最不了解的就是他自己”“你了解了自已,才能去了解别人” ***********************************************************************技能 : 软件设计 : 熟悉.Net 语言,Java 语言,了解COM 模型,TCP/IP 模型
2011-06-29 10:26:00
661
转载 linux基础——shell变量(本地变量和环境变量)
<br />linux超级基础系列——shell变量(本地变量和环境变量) 为使shell编程更有效,系统提供了一些shell变量。shell变量可以保存诸如路径名、文件名或者一个数字这样的变量名。shell将其中任何设置都看做文本字符串。<br />有两种变量,本地和环境。严格地说可以有4种,但其余两种是只读的,可以认为是特殊变量,它用于向shell脚本传递参数。1 什么是shell变量<br />按照定义来说,变量是存储设备中的一些可读写的存储单元.变量可以定制用户本身的工作环境。使用变量可以保存有用信
2010-10-27 09:23:00
5931
1
原创 库文件
1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。静态链接库和动态链
2010-10-19 15:05:00
520
原创 C语言编译全过程
<br />C语言编译全过程 编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等) 1. 编译预处理 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理伪指令主要包括以下四个
2010-10-19 13:29:00
370
转载 Base 64 编码
各位看官应该都是资深的网虫了,小弟斗胆在此问问大家,平时上网时,除了泡MM、到论坛灌水、扔版砖……之外,进行的最多的是什么活动?对了,你一定会说:是收发电子邮件!(谁敢说自己没收/发过电子邮件的?拉出去枪毙了!!)收/发E-mail的时候有一个安全性的问题——假想一下,你花了一整天时间给系花写的情书,在发送的过程中被隔壁宿舍张三那小子截获了(难道他是黑客??),更糟的是他是你的情敌啊……天,后果不堪设想!!因此,我们必须有一种比较可靠的加密方法,能够对电子邮件的明文进行转换,至少要得出一个无法被别人一眼就看
2010-07-20 13:27:00
619
原创 最简单的授权文件
<br />制作一个简单的授权文件<br /> <br />以.licx 后缀的文本文件,在其中保存经过加密的授权码,然后通过简单的加/解密,和文件读写操作,就可以完成相应的授权验证。<br /> <br /> <br />licenses.licx <br />用记事本打开就有FreeTextBoxControls.FreeTextBox, FreeTextBox, Version=3.0.3300.3, Culture=neutral, PublicKeyToken=5962a4e684
2010-07-20 10:51:00
834
转载 Windows下的Win32串口编程
<br />在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。 <br />一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。<br /> 在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵
2010-07-20 08:48:00
15397
1
转载 WIN 32 串口API
<br />2-CreateFile() <br />用途:打开串口 <br />原型:HANDLE CreateFile(LPCTSTR lpFileName, <br />DWORD dwDesiredAccess, <br />DWORD dwShareMode, <br />LPSECURITY_ATTRIBUTES lpSecurityAttributes, <br />DWORD dwCreationDistribution, <br />DWORD dwFlagsAndAttributes,
2010-07-20 08:46:00
1236
转载 差分信号
<br /> 对差分信(VDS)号而言,对其影响最大的因素是它们的对地阻抗是否一致,也就是对地平衡度,它们之间相对的阻抗影响并不特别重要,之间分布电容大了只会衰落信号强度,不会引入噪声和干扰,也就是对信噪比不会产生很大影响。<br />差分信号只是使用两根信号线传输一路信号,依靠信号间电压差进行判决的电路,既可以是模拟信号,也可以是数字信号。实际的信号都是模拟信号,数字信号只是模拟信号用门限电平量化后的取样结果。因此差分信号对于数字和模拟信号都可以定义。 <br /> 一个差分信号是用一个数值来
2010-07-11 00:44:00
2297
原创 (翻译) 《C# to IL》第三章 选择和循环
(翻译) 《C# to IL》第三章 选择和循环 -3- 在IL中,标号(label)是一个末尾带有冒号(即:)的名称。它使我们能够从代码的一部分无条件地跳转到另一部分。我们经常在由反编译器生成的IL代码中看到这个标号。例如:IL_0000: ldstr "hi"IL_0005: call void [mscorlib]System.Console::
2010-04-13 23:10:00
512
原创 .NET Framework 开发人员指南——同步基元概述
.NET Framework 开发人员指南同步基元概述 .NET Framework 提供了一系列同步基元来控制线程交互并避免争用条件。这可大致分为三个类别:锁定、通知和联锁操作。 上述类别的定义并非是绝对的:有些同步机制具有多个类别的特征;一次释放一个线程的事件的功能类似于锁定;任何锁定的释放都可看作一个信号;而联锁操作可用于构造锁定。但是,这些类别仍然是有用的。 记
2010-04-13 23:09:00
444
原创 .NET Framework 开发人员指南——托管线程处理的最佳做法
.NET Framework 开发人员指南托管线程处理的最佳做法 多线程编程需要在编程时倍加注意。对于多数任务,通过将执行请求以线程池线程的方式排队,可以降低复杂性。本主题将探讨更复杂的情形,比如协调多个线程的工作或处理造成阻止的线程。死锁和争用条件多线程编程解决了吞吐量和响应性问题,但引入此功能会带来新的问题:死锁和争用条件。 死锁当两个线程中的每一个
2010-04-13 22:48:00
590
原创 (翻译) 《C# to IL》第一章 IL入门
(翻译) 《C# to IL》第一章 IL入门 -1- 我们用C#、VB.NET语言编写的代码最终都会被编译成程序集或IL。因此用VB.NET编写的代码可以在C#中修改,随后在COBOL中使用。因此,理解IL是非常有必要的。 一旦熟悉了IL,理解.NET技术就不会有障碍了,因为所有的.NET语言都会编译为IL。IL是一门中性语言。IL是先发明的,随后
2010-04-13 22:33:00
890
1
原创 (翻译) 《C# to IL》第二章 IL基础
(翻译) 《C# to IL》第二章 IL基础 -2- 如果你真的想要理解C#代码,那么最好的方法就是通过理解由C#编译器生成的代码。本章和下面两章将关注于此。 我们将用一个短小的C#程序来揭开IL的神秘面纱,并解释由编译器生成的IL代码。这样,我们就可以“一箭双雕”:首先,我们将揭示IL的奥妙,其次,我们将会更加直观地理解C#编程语言。
2010-04-13 22:28:00
1072
转载 MSIL 指令大全
MSIL 指令大全 公共字段Add 将两个值相加并将结果推送到计算堆栈上。 Add_Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。 Add_Ovf_Un 将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。 And 计算两个值的位 AND 并将结果推送到计算堆栈上。 Arglist 返回指向当前方法的参数列表的非托管指针。 Beq 如果两个值相等,则将控制转移到
2010-04-13 20:47:00
768
原创 Win32 -Win32数据类型
Win32 - 07 Win32数据类型 学习过C语言的童鞋,应当对C语言数据类型非常熟悉,但C语言的数据类型有如下几个缺陷:数据类型平台相关,在不同平台上,同一个数据类型可能占用不同的空间大小。典型的,在16位系统上,int类型和short int类型长度相同,但在32位平台上,则和long int类型长度相同; 数据类型过于单一,例如在表现数值和布尔这两种情况时,虽然它们都是32位长
2010-04-13 20:21:00
1622
转载 C#语言 第五部分 线程(一)线程基础(1)
C#语言 第五部分 线程(一)线程基础(1) 0 概述Windows系列操作系统是建立在保护模式之上的32位/64位多任务操作系统,其特点是:时分抢先式多任务操作系统。我们来详细探讨一下其中的定义。在操作系统中,进程和线程是和我们运行程序紧密相关的两个概念,其中:进程是资源分配单元,用于执行一段程序前为其分配足够的资源; 线程是程序执行单元,线程用于执行程序。 简单的叙述一下Wind
2010-04-13 20:17:00
436
转载 C#语言 第五部分 线程(一)线程基础(2)
C#语言 第五部分 线程(一)线程基础(2) 2、优雅的退出线程上一节我们讲了如何建立和启动线程,那么线程应该如何退出呢?按照要求,无论使用何种编程语言,线程都必须自然退出,而不应该被迫退出。所谓自然退出,就是线程的入口方法执行完毕退出(包括使用异常跳出方法、使用return跳出方法或令方法运行完毕),线程入口方法执行完毕,标志着线程退出,此时.net Framework会继续执行一段代码
2010-04-13 20:16:00
620
转载 VB.NET _synclock 语句
SyncLock 语句SyncLock 语句使语句得以在表达式上同步,这确保了多个执行线程不会同时执行同一个语句。在进入块后,表达式计算一次。进入 SyncLock 块时,在指定的表达式上调用 Shared 方法 System.Monitor.Enter,该方法一直阻塞到执行线程在表达式返回的对象上具有独占锁。SyncLock 语句中的表达式类型必须为引用类型。SyncLock 块隐式
2010-04-13 20:10:00
8749
1
转载 C#语言 第五部分 线程(二) 线程同步(1)
C#语言 第五部分 线程(二) 线程同步(1) 收藏 0 概述上一章我们了解了多个线程可以“同时”运行代码(我们称为“异步运行”),这一章我们来研究为什么异步运行的线程需要同步?所谓同步,就是给多个线程规定一个执行的顺序(或称为时序),要求某个线程先执行完一段代码后,另一个线程才能开始执行。第一种情况:多个线程访问同一个变量:一个线程写,其它线程读:这种情况不存在同步问题,因为只
2010-04-13 19:13:00
704
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人