- 博客(53)
- 资源 (12)
- 收藏
- 关注
原创 C# WebBrowser控件打开Echarts无效解决办法
C# WebBrowser控件打开Echarts无效解决办法这是因为eCharts在IE中兼容模式配置,造成的,解决办法〉〉一、首先当然是看你页面布局是否正确。二、对于eCharts在IE兼容模式中显示,需要指定meta元素中放入X-UA-Compatible ie=edge 标头。 (不理解“X-UA-Compatible ie=edge”?)
2016-06-14 17:08:09 5106
原创 C#调用DLL
最近在写一个关于C#调用VC的非MFC动态库的一个小程序,本来原来想用VC写的。后来想用C#画个图 估计很方便,于是就是操起了C#. 虽然以前没有用过C#开发过东西,但是大道都是通的,无非就是工具 而已,虽然前方很模糊,但是我更想看看模糊的背后是什么(呵呵,废话过多,开始了) 运行环境: XP + SP2 1.非托管类(不需要CLR和.NetFramework支持) 注意:需要在程序声
2011-06-29 22:49:00 1766
原创 [busybox]TFTP
[busybox]TFTP这个指令很好用!<br />虽然我是用cramfs,但把tmp 作为了ramfs ,可以用tftp接收文件,这下省的每次得都重新编译文件系统<br />tftp 在linux下的用法感觉没有 在u-boot下面好用<br />下面是busybox里面的解释<br />Usage: tftp [OPTION]... HOST [PORT]<br />Transfer a file from/to tftp server using "octet" mode<br />Options:
2011-04-25 11:50:00 940
原创 setsockopt 设置socket 详细用法
<br />1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:<br /> <br />BOOL bReuseaddr=TRUE;<br />setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));<br /><br />2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历<br />TIME_WAIT的过程:<br />B
2011-03-27 22:30:00 1014 1
原创 VC串口通信(3)
<br />工业控制领域(如DCS系统),经常涉及到串行通信问题。为了实现微机和单片机之间的数据交换,人们用各种不同方法实现串行通信,如DOS下采用汇编语言或C语言,但在Windows 环境下却存在一些困难和不足。在Windows操作系统已经占据统治地位的情况 下(何况有些系统根本不支持DOS如Windows2000)开发Windows 环境下串行通信技术就显得日益重要。VC++6.0是微软公司于1998年推出的一种开发环境,以其强大的功能,友好的界面,32位面向对象的程序设计及Active X的灵活性而受
2010-08-15 23:28:00 964
原创 VC串口通信(2)
在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。 在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵活。其二是调用Windows的API函
2010-08-15 23:25:00 966
原创 Vc串口通信(1)
<br /><br />一、VC编程实现串口通信软件<br /> 首先,我们来大概的回忆一下单片机的串口通信。<br /> 8051单片机的串行接口由数据缓冲寄存器SBUF、移位寄存器、串行控制寄存器SCON组成。8051单片机的串行接口是一个可编程的全双工通信接口,通过软件编程可以作为通用异步接收和发送器使用,也可作为同步移位寄存器,还可实现多机通信。其帖格式有8位、10位和11位,通过T1或T2设置各种波特率。<br />1.1 串行口工作原理<br /> 在发送和接收数据前,
2010-08-15 23:18:00 2114
转载 C++字符串完全指引之一 —— Win32 字符编码
原文出处:CodeProject:The Complete Guide to C++ Strings, Part I 引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁。本指引将总结引进各种字符类型的目的,展示一些简单的用法,并告诉您在必要时,如何实现各种字符
2010-04-20 21:21:00 705
原创 VC字符串转换
CString ,BSTR ,LPCTSTR之间关系和区别CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。typedef OLECHAR FAR* BSTR;typedef const char * LP
2010-04-20 21:17:00 944
原创 static函数的申明
static 声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。 Tips: A.若全局变量仅在单个C文件中访问,则可以将这个变量修改为静
2010-04-13 22:55:00 7693
原创 一个管理监听、连接、发送、接收、组包的CSocket派生类
Socket有同步阻塞方式和异步非阻塞方式两种使用,事实上同步和异步在我们编程的生涯中可能遇到了很多,而Socket也没什么特别。虽然同步好用,不费劲,但不能满足一些应用场合,其效率也很低。 也许初涉编程的人不能理解“同步(或阻塞)”和“异步(或非阻塞)”,其实简单两句话就能讲清楚,同步和异步往往都是针对一个函数来说的,“同步”就是函数直到其要执行的功能全部完成时才返回,而“异步”则是,函数
2010-03-29 20:19:00 1893
原创 Socket API,CAsyncSocket,CSocket内幕及其用法
Socket有同步阻塞方式和异步非阻塞方式两种使用,事实上同步和异步在我们编程的生涯中可能遇到了很多,而Socket也没什么特别。虽然同步好用,不费劲,但不能满足一些应用场合,其效率也很低。 也许初涉编程的人不能理解“同步(或阻塞)”和“异步(或非阻塞)”,其实简单两句话就能讲清楚,同步和异步往往都是针对一个函数来说的,“同步”就是函数直到其要执行的功能全部完成时才返回,而“异步”则是,函数
2010-03-29 20:18:00 833
原创 堆、栈、自由存储区、全局/静态存储区和常量存储区
堆、栈、自由存储区、全局/静态存储区和常量存储区在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那
2010-03-26 15:42:00 2293
原创 内存分配——静态存储区 栈 堆
一、内存基本构成 可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。 栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,
2010-03-26 15:28:00 22992 7
转载 SendMessage、PostMessage原理
本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:1、SendMessage、PostMessage的运行机制。2、SendMessage、PostMessage的运行内幕。3、SendMessage、PostMessage的内部实现。注:理解这篇文章之前,必须先了解Windows
2010-03-26 12:05:00 1149
转载 CCITT CRC-16计算原理与实现
CRC的全称为Cyclic Redundancy Check,中文名称为循环冗余校验。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。实际上,除数据通信外,CRC在其它很多领域也是大有用武之地的。例如我们读软盘上的文件,以及解压一个ZIP文件时,偶尔会碰到“Bad CRC”错误,由此它在数据存储方面的应用可略见一斑。差错控制理论是在代数理论基础
2010-03-11 09:06:00 2151
转载 《COM原理及应用》学习笔记之第十四章
第14章 COM发展——COM+1、COM+ 由于历史的原因,COM、DCOM和MTS相互之间并不很融洽,难以形成统一的整体。COM+把这三者有效地统一起来,形成了一个全新的、功能强大的组件体系结构。
2010-03-07 10:08:00 601
转载 《COM原理及应用》学习笔记之第十二章
第12章 ActiveX控制1、ActiveX控制 ActiveX控制是Microsoft提供的功能强大的程序设计和开发技术。ActiveX控制既是一个自动化对象(当然也是一个标准的COM对象),也是一个界面元素,如同Win
2010-03-07 10:07:00 794
转载 《COM原理及应用》学习笔记之第十三章
第13章 基于COM的程序设计1、COM的作用 COM作为一种软件模型,提供了程序之间通信的标准,但其最大的贡献在于对程序设计方法的变革。COM结合了对象技术和组件技术两种特性。对象特性使得应用系统的设计和实现更加符合现
2010-03-07 10:07:00 791
转载 《COM原理及应用》学习笔记之第十一章
第11章 自动化(Automation)对象1、自动化技术 自动化技术既以前提到的OLE自动化。虽然自动化技术建立在COM基础上,但自动化要比COM应用广泛得多。一方面,自动化继承了COM的很多优点,比如
2010-03-07 10:06:00 687
转载 《COM原理及应用》学习笔记之第十章
第十章 分布式COM(DCOM)1、DCOM COM的进程透明特性表现在组件对象和客户程序即可以拥有各自的进程空间,也可以共享同一个进程空间,COM负责把客户的调用正确传到组件对象中,并保证参数传递的正确性。组件对象和客户代码不必考
2010-03-07 10:05:00 612
转载 《COM原理及应用》学习笔记之第九章
第九章 统一数据传输1、概述 COM提供了应用之间数据交换的标准方案,称为统一数据传输(UDT,uniform data transfer)。统一数据传输技术建立在结构化存储技术的基础之上,它通过一个“数据对象”来表达要传输的数据信息,因此,统一数据传输技术的核心在于数据对象
2010-03-07 10:04:00 503
转载 《COM原理及应用》学习笔记之第八章
第八章 命名和绑定技术1、COM对象的创建方法 客户程序可以通过CoCreateInstance函数创建COM,在创建之前必须知道对象的一些基本情况,比如对象的CLSID或者对象的ProgID。
2010-03-07 10:03:00 604
原创 《COM原理及应用》学习笔记之第六章
第六章 可连接对象1、COM的高级特性 COM规范中有一些高级特性,如可连接对象、永久存储、一致的数据传输等,使COM规范具有更强的生命力,它们也是OLE的基础,但它们的应用又不仅仅局限于OLE,这些高级特性已经广泛应用于Windows
2010-03-07 10:01:00 599
原创 《COM原理及应用》学习笔记之第七章
第七章 结构化存储1、结构化存储 COM的结构化存储(structured storage)机制,也称为永久存储(persistent storage)机制。结构化存储可以说是软件存储技术的一个重要进展,COM针对组件软件的需要,在文件系统的基础上
2010-03-07 10:01:00 684
原创 《COM原理及应用》学习笔记之第五章
1、MFC和ATL 对于COM应用的开发来说,建立一套标准的、有能够不断发展的类库是非常有意义的,这样可以实现程序的重用性。Microsoft Visual C++提供了两套满足这样需要的类库:MFC库和ATL模板库。MFC不仅可用于建立COM应用,
2010-03-07 09:59:00 691
原创 《COM原理及应用》学习笔记之第四章
第四章 COM特性1、面向对象系统的三个最基本的特性 封装性、多态性、重用性。 2、COM特性的概述COM对象的封装特性是很彻底的,所有的对象状态信息必须通过接口才能访问;而COM的多态性完全通过接口体
2010-03-07 09:57:00 968
转载 《COM原理及应用》学习笔记之第三章
1、COM的实现与操作系统平台密切相关因为COM最初源于Microsoft Windows平台,所以COM实现部分(即COM库)很多地方直接用到了Windows系统的一些特性,比如系统注册表、动态连接库等等,但实际上COM是一个与平台无关的组件软件模型。W
2010-03-07 09:56:00 855
转载 COM原理与应用学习笔记(二章)
第二章 COM对象和接口 1、COM对象的理解 COM对象类似于C++语言中类的概念,类的每个实例代表一个COM对象,它也包括属性(即状态)和方法(即操作),状态放映对象的存在,方法就是接口。 2、COM对象的标识-CLSI
2010-03-07 09:54:00 647
转载 COM原理与应用学习笔记一
《COM原理与应用》学习笔记(一)在接触编程初就有听说过COM的大名!于是上网找了些资料,一看,吓呆了(很深奥◎_◎!)。的确COM对于刚接触C/C++的我来说,简直就是抽象画,领悟不了。现在有了一定的C/C++基础,我想是时候去悟一悟了。前不久买了潘爱民老师的原理与应用
2010-03-07 09:53:00 765
转载 DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC宏
IMPLEMENT_DYNAMIC是实现“运行时类型识别”宏,与之相对应的是DECLARE_DYNAMIC(声明“运行时类型识别”宏)。也就是说你在.CPP文件中如果看见有IMPLEMENT_DYNAMIC,则在.H文件中必定有DECLARE_DYNAMIC的声明。 DECLARE_DYNAMIC/DEClARE_DYNAMIC是为了确定运行时对象属于哪一个类而定义的宏。 DECl
2010-02-25 23:44:00 555
原创 [转]__cdecl __fastcall与 __stdcall
Visual C++ Compiler Options可以指定的Calling Convention有 3种: /Gd /Gr /Gz 这三个参数决定了: 1.函数参数以何种顺序入栈,右到左还是左到右。 2.在函数运行完后,是调用函数还是被调用函数清理入栈的参数。 3.在编译时函数名字是如何转换的。 下面我们分别详细介绍: 1./Gd 这是编译
2010-02-08 22:29:00 536
转载 RepositionBars的用法和参数的意义(引用别人的)
MFC窗口位置管理详细分析及实例在一般用MFC编写的程序的窗口客户区中,可能有好几个子窗口(具有WM_CHILD风格的窗口)。上边是工具栏,中间是视图窗口,下边是状态栏。三个窗口在框架的客户区里和平共处,互不重叠。主框架窗口的尺寸改变了,别的子窗口都能及时调整自己的尺寸以便保持相互位置关系不变,例如状态条窗口总能保持在主框架客户区底部,并且其宽度总能和主框架客户区宽度一致。工具栏窗口总
2010-02-06 22:57:00 698
原创 Unicode转ASCII常用方法
不管什么时候,只要COM方法返回一个串,这个串都是Unicode串(这里指的是写入COM规范的所有方法)。Unicode是一种字符编码集,类似ASCII,但用两个字节表示一个字符。如果你想更好地控制或操作串的话,应该将它转换成TCHAR类型串。 TCHAR和以_t开头的函数(如_tcscpy())被设计用来让你用相同的源代码处理Unicode和ANSI串。在大多数情况下编写的代码都是用来处
2010-01-20 21:36:00 4048
原创 大端,小端问题
由于工作原因,最近接触到了PLC和它的组态问题,由于公司用的是VIPA的PLC,组态王上没有与他的以太网通信协议,最后自己通过组态王驱动开发包开发了个与VIPA的驱动,在当中遇到了个问题,就是当需要写入一个浮点数(float)到PLC的MD寄存器的时候发现出现了问题,检查了很多遍发现程序编写没有问题,最后想到了是不是内存中数据的存储方式是不是不正确,后面看了下libnodave.dll的源代
2010-01-20 14:55:00 1051
转载 STL学习小结
STL就是Standard Template Library,标准模板库。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list, vector,set,map等,STL也是算法和其它一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。是C++标准库的一个重要组成部分,它
2010-01-11 22:38:00 625
转载 WINDOWS核心编程 笔记 1-2
介绍本书是讲解Windows操作系统内部机制的专著,作者从基本概念入手,全面系统地介绍了Windows的各种基本构件,如进程、线程、DLL和内存管理等,并列举了大量应用程序,精辟地分析了构件的使用方法,为掌握Windows 编程技巧提供了一条有效的捷径。对于不同水平的Windows编程人员来说,本书都具有极好的参考价值。第1章 对程序错误的处理 在开始介绍Micros
2010-01-11 22:33:00 681
原创 完成端口模型
最近要做一个网络方面的小东东,基于C/S模式的。都说IOCP可以使系统达到最佳的性能,因此我就比划了两下,献丑了。抄书开始。 从本质上说,完成端口模型要求创建一个windows完成端口对象,该对象通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求提供服务。 首先要创建一个I/O完成端口对象,用它面向任意数量的套接字句柄,管理多个I/O请求。调用以下函数创建完成
2009-12-16 23:09:00 866 1
转载 引用 vc++ 实战oledb编程(五)
很久没有更新我的博客了,作为系列文章,OLEDB这个专题的前几篇文章受到了广大网友的极大关注,让我有点受宠若惊了,本想早点完成这个系列,哪怕是后续的文章,无奈杂务缠身,加之原稿和原始代码的丢失,使我不得不又重头建立这些,当然只要有网友的关注,我就会继续将这个话题讨论下去,直到大家都真正的掌握OLEDB这个数据库编程接口,哪怕仅仅是点击率的上涨,对我都是莫大的安慰。前面的系列文章只是使用OLED
2009-12-16 11:20:00 1512
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人