摘要: 最近由于工作需要,不得不操作Excel,包括基本的数据输入输出、字体设置、颜色设置、单元格的合并、填充色的设置,当然还包括图表的生成以及渐近线的操作等。折腾了许久,项目终于完成了^_^。现在将学习操作Excel的点点滴滴记录下来和大家一同分享,也作为自己的一次总结。 1、Excel的对象模型(有人称其为层次结构)打开一个Excel工作表,点击“工具”->“宏”->“Visual Basic 编辑器”选项打开VB的编辑器,打开帮助文档,里面“Microsoft Excel Visual Basic 参考”下的“Microsoft Excel 对象模型”展示了完整的Excel的层次结构 阅读全文
posted @ 2013-07-03 00:24 MMLoveMeMM 阅读(1197) 评论(0) 推荐(0)
摘要: 将JPG图片绘制在对话框背景上: 显示JPG图片的函数 void CMyDlg::ShowPicture(CDC *pDC, CString m_strBRoute, int x, int y, int width, int height) { HANDLE hFile = CreateFile(m_strBRoute, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); _ASSERTE(INVALID_HANDLE_VALUE != hFile); // 取得文件大小... 阅读全文
posted @ 2013-07-02 01:01 MMLoveMeMM 阅读(268) 评论(0) 推荐(0)
摘要: 绘图一般在视图类的(屏幕/打印机)绘图消息响应函数OnDraw中进行,例如:void CTestView::OnDraw(CDC* pDC) { CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码}每次需要重绘窗口时(程序启动/窗口大小改变/全部或部分窗口重现/程序员调用RedrawWindow或pdateWindow),应用程序框架都会调用该CWnd的消息响应成员函数(的覆盖)来绘制窗口客户区。在Windows中,绘图一般在视图窗口的客户区进行,使用的是M 阅读全文
posted @ 2013-07-02 00:58 MMLoveMeMM 阅读(445) 评论(0) 推荐(0)
摘要: 线程同步的方式有: 临界区 管理事件内核对象 信号量内核对象 互斥内核对象分别介绍如下:使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果一个线程负责改变此变量的值,而其他线程负责同时读取变量内容,则不能保证读取到的数据是经过... 阅读全文
posted @ 2013-07-02 00:56 MMLoveMeMM 阅读(186) 评论(0) 推荐(0)
摘要: VC MFC中设置对话框的背景色、背景图片设置背景色:一个基于对话框的MFC AppWizard应用程序中,如何改变对话框的背景颜色呢?对于这个问题,其实可以 由几种不同的方法来实现,具体如下(粗斜体代码为增添的):---- 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。---- 其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色。下面的例子是将应用程序对话 框设置为蓝色背景和红色文本,步骤如下:---- ① 新建一个基于Dialog的MFC AppWizard应用程序ExampleDlg。---- ② 在CExampleDlgApp ::InitIn 阅读全文
posted @ 2013-07-01 16:18 MMLoveMeMM 阅读(567) 评论(0) 推荐(0)
摘要: VC++中操作XML(MFC、SDK)XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini。VC++里操作XML有两个库可以用:MSXML和XmlLite。MSXML又细分了两种接口:DOM和SAX2。XP没自带有XmlLite,只自带有2.x、3.x版的MSXML,不支持SAX2(需要MSXML 4.0以上),所以优先使用DOM。DOM是以COM形式提供的,VC++里调用DOM可以分3种方法:1、MFC里用CComPtr调用2、SDK里直接调用DOM接口3、SDK里用智能指针调用这3种方法本质上是一样 阅读全文
posted @ 2013-06-26 20:40 MMLoveMeMM 阅读(576) 评论(0) 推荐(0)
摘要: XSL(可扩展样式表语言)是对CSS的一种扩展,功能比CSS强大得多。XML链接是在HTML链接的功能之上加以扩展,可以支持更为复杂的链接,通过XML链接,不仅可以在XML文件之间建立链接,还可以建立其他类型数据之间的链接,其规范分为三个部分:XLink语言,XPointer语言和XML Base. XML标准体系中还有其他很多技术,比如针对DTD的不足而提出的XML Schema,对XML文档进行结构话处理的DOM等,由于篇幅的关系,在这就不一一列举,不熟悉的请参考有关书籍。 好了,现在让我们开始进入正题——对XML的操作。首先,请保证您的电脑中有最新版本的MSXML,微软XML核心... 阅读全文
posted @ 2013-06-26 20:18 MMLoveMeMM 阅读(1737) 评论(0) 推荐(0)
摘要: 有时候要实现两个选项的切换,常规做法1是放两个Radio按钮控件,并设置这两个按钮为一组。2是放一个Check按钮控件。但感觉都不是那么理想和直观。有没有更好的实现方式呢?下面将给你介绍一种我自绘的控件,我把它命名为“切换控件”(SwitchButton)。实现的效果如下图实现,给你一个多的选择,以供参考。下面是实现源码:[cpp] view plaincopyprint?///////////////////////////////说明文件///////////////////////////////////////////// //文件:SwitchBtn.h// //功能:切换按钮类,实 阅读全文
posted @ 2013-06-26 20:01 MMLoveMeMM 阅读(773) 评论(0) 推荐(0)
摘要: 1.线程之间的通信简介一般而言,在一个应用程序中(即进程),一个线程往往不是孤立存在的,常常需要和其它线程通信,以执行特定的任务。如主线程和次线程,次线程与次线程,工作线程和用户界面线程等。这样,线程与线程间必定有一个信息传递的渠道。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的。线程间的通信涉及到4个问题:(1) 线程间如何传递信息(2)线程之间如何同步,以使一个线程的活动不会破坏另一个线程的活动,以保证计算结果的正确合理(3)当线程间具有依赖关系时,如何调度多个线程的处理顺序(4)如何避免死锁问题在windows系统中线程间的通信一般采用四种方式:全局变量方式、消息传 阅读全文
posted @ 2013-06-26 19:54 MMLoveMeMM 阅读(361) 评论(0) 推荐(0)
摘要: 一、 VB读写EXCEL表: VB本身提自动化功能可以读写EXCEL表,其方法如下: 1、在工程中引用Microsoft Excel类型库: 从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。表示在工程中要引用EXCEL类型库。 2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Works 阅读全文
posted @ 2013-06-26 15:20 MMLoveMeMM 阅读(319) 评论(0) 推荐(0)
摘要: VB如何获取Excel sheet中的记录数和总列数Sheets("sheet1").usedrange.columns.countSheets("sheet1").usedrange.rows.countDim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = New Excel.Application 'Set xlBook = xlApp.Workbooks.Add 'Set xlShe 阅读全文
posted @ 2013-06-26 15:19 MMLoveMeMM 阅读(2655) 评论(0) 推荐(0)
摘要: 您可以添加 MFC 应用程序开销很小,使用 Microsoft ActiveX 脚本技术类似于 VBA 的脚本编写功能。本文演示如何创建新的 MFC 应用程序中,或修改现有,合并了 VBScript 的支持。回到顶端 | 提供反馈更多信息请按照以下步骤来生成并运行该示例:创建新 MFC 对话框基于的应用程序,或使用要添加脚本的支持已有的应用程序。向对话框,添加一个编辑框和按钮,启用"需要返回"和"多行"编辑框中的属性中的样式。使用成员变量选项卡下类向导 (CTRL-W),IDC_EDIT1 相关联的类型名为 m_edit1 的 CEdit 成员变量。类向 阅读全文
posted @ 2013-06-23 23:57 MMLoveMeMM 阅读(598) 评论(0) 推荐(0)
摘要: wav声音数据,是根据声音的采集间隔,比如,声卡采样率是22.1K 样点每秒,即是 1/22100 = 0.000045秒 采集一个声音点,这个声音点会转化为电压值。加入采集10秒钟,就采集了221000个电压值,这些点就可以绘制成波浪曲线,这些电压值转化为二进制或16进制的数据存到硬盘,就是你看到的99 A0 B5 C0 AA B7 9C 9A 77 6B 5E。声音的频率是由时域信号(波浪曲线)反应出来的,通过编程做FFT运算可以看出它有哪些频率信号 阅读全文
posted @ 2013-06-22 21:32 MMLoveMeMM 阅读(386) 评论(0) 推荐(0)
摘要: //ASR.h#include #include #define MAXDATA (256*400) //一般采样数据大小,语音文件的数据不能大于该数据#define SFREMQ (8000) //采样数据的采样频率8khztypedef struct WaveStruck//wav数据结构{ //data headstruct HEAD{char cRiffFlag[4];int nFileLen; char cWaveFlag[4];//WAV文件标志char cFmtFlag[4]; int cTransition; short nFormatTag;short nChannels;i 阅读全文
posted @ 2013-06-22 21:08 MMLoveMeMM 阅读(1662) 评论(1) 推荐(1)
摘要: //Fourier.cpp:implementationoftheFourierclass. // ////////////////////////////////////////////////////////////////////// #include"stdafx.h" #include"Fourier.h" #include #ifdef_DEBUG #undefTHIS_FILE staticcharTHIS_FILE[]=__FILE__; #definenewDEBUG_NEW #endif /* *fft.cpp * *loicfont 阅读全文
posted @ 2013-06-22 19:05 MMLoveMeMM 阅读(248) 评论(0) 推荐(0)
摘要: VC+ADO存取SQL SERVER下面的代码是这样生成的1)先生成一个MFC 对话框工程(名字叫Test),并在stdafx.h加入下面一行,(注意路径)#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF") 2)再在Test.h增加下面几个变量(protected)_ConnectionPtr m_pConnection;//connection object's pointer _ 阅读全文
posted @ 2013-06-19 20:08 MMLoveMeMM 阅读(266) 评论(0) 推荐(0)
摘要: CString 头文件#include <afx.h>string 头文件#include <string.h>CString 转char *CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str());char 转 CStringCString.format(”%s”, char*);char 转 stringstring s(char *);string 转 char *char *p = string.c_str();CString 阅读全文
posted @ 2013-06-19 19:38 MMLoveMeMM 阅读(275) 评论(0) 推荐(0)
摘要: --=================================-- 配置ORACLE 客户端连接到数据库--================================= Oracle 客户端连接到Oracle 数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQL server 运行于Windows平台,故很多配置直接集成到了操作系统之中。所以无需配置客户端即可连接到服务器。Oracle 客户端连接到数据库依赖于Oracle Net。Oracle提供了很多基于客户端或服务器的配置工具,需要搞清的是Oracle Net 中的相关术语。术语明白了,其实配置 阅读全文
posted @ 2013-06-19 10:51 MMLoveMeMM 阅读(456) 评论(0) 推荐(0)
摘要: SNR(Signal to Noise Ratio,信噪比): 指在规定输入电压下的输出信号电压与输入电压切断时,输出所残留之杂音电压之比,也可看成是最大不失真声音信号强度与同时发出的噪音强度之间的比率,通常以S/N表示。一般用分贝(dB)为单位,信噪比越高表示音频产品越好,常见产品都选择60dB以上。理论上,一个ADC的SNR(信号与噪声的比值)等于(6.02N+1.76)dB,这里N等于ADC的位数。虽然我的数学技巧有点生疏,但我认为任何一个16位转换器的信噪比应该是98.08dB。但当我查看模数转换器的数据手册时,我看到一些不同的情况。比如,16位的(逐次逼近型)模数转换器指标的典型.. 阅读全文
posted @ 2013-06-16 15:52 MMLoveMeMM 阅读(8086) 评论(0) 推荐(0)
摘要: Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这个问题很复杂,不知道如何下手。本例针对这个问题,介绍一种简单的方法实现文字串的打印功能,读者朋友可以在此基础上稍微改动一下,就可以实现文件、图像的打印功能。 一、实现方法 在Windows操作系统下,显示器、打印机和绘图仪都被视为输出设备,正常情况下,系统默认的输出设备是显示器。要使用打印机,首先需要创建一个指向打印机的设备环境句柄,然后通过该句柄调用相关的绘图函数把所需的文字和图形输出至打印.. 阅读全文
posted @ 2013-06-15 20:50 MMLoveMeMM 阅读(7446) 评论(0) 推荐(0)
摘要: 如果你用过Windows的音频设备,比如播放音乐或者录音,聊天,调节麦克或者声音的大小,以及设置静音,都可以通过控制面板中的音频设置面板来调节,你对于下面的两个设置面板肯定不陌生。 播放时调节音量大小和左右声道的控制板,还可以通过它将某个设备设置为静音。图1 另一个就是录音时控制面板,在这里我们可以选择声音输入设备,以及调节录音时左右声道音量大小 图2 这两个控制板是Windows提供给我们的,这两个控制板是让windows用户在播放声音或者录音时莱调节音频设备的,通过这两个控制板,我们可以选择播放或者录音的音频设备,设置音量的大小,调整左右声道。但是如果我们自己开发的程序中也要用到这个... 阅读全文
posted @ 2013-06-15 20:44 MMLoveMeMM 阅读(874) 评论(0) 推荐(0)
摘要: 网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。详细参考:http://baike.baidu.com/view/16102.htm 阅读全文
posted @ 2013-06-14 00:02 MMLoveMeMM 阅读(149) 评论(0) 推荐(0)
摘要: 数字电路有三种状态:高电平、低电平和高阻状态。但有些场合却不希望出现高阻状态,通过上拉电阻或者下拉电阻就可以是电路处于稳定的状态,具体视设计要求而定。上下拉电阻的应用道理类似,下面就以上拉电阻为例说明: 1.上拉电阻的作用 ① 当前端逻辑输出驱动输出的高电平低于后级逻辑电路输入的最低高电平是,就需要在前级的输入端接上拉电阻,以提高输出高电平的值;同时提高芯片输入信号的噪声容限,以增强抗干扰能力。 ②为加大高电平输出时引脚的驱动能力,有的单片机引脚上也常使用上拉电阻。 ③OC门必须加上上拉电阻是引脚悬空有确定的状态,实现“线与”功能 ④在CMOS芯片上,为了防止静电造成损坏,不用的引脚不能悬空, 阅读全文
posted @ 2013-06-13 23:48 MMLoveMeMM 阅读(744) 评论(0) 推荐(0)
摘要: sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个IP地址和一个端口上(bind());3:将套接字设置为监听模式等待连接请求(listen());4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());5:用返回的套接字和客户端 阅读全文
posted @ 2013-06-13 23:45 MMLoveMeMM 阅读(1389) 评论(0) 推荐(0)
摘要: Microsoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器。这些标准数据格式包括有:SQL Server、Access、Paradox、dBase、FoxPro、Excel、Oracle以及Microsoft Text。如果用户希望使用其他数据格式,则需要安装相应的ODBC驱动器及DBMS。 用户使用自己的DBMS数据库管理功能生成新的数据库模式后,就可以使用ODBC来登录数据源。对用户的应用程序来说,只要安装有驱动程序,就能注册很多不同的数据库。登录数据库的具体操作参见有关ODBC的联机帮助。 一、MFC提供的ODBC数据库类 Visual... 阅读全文
posted @ 2013-06-13 23:43 MMLoveMeMM 阅读(354) 评论(0) 推荐(0)
摘要: //TCP//服务器端程序#include< stdio.h >#include< stdlib.h >#include< windows.h >#include< winsock.h >#include< string.h > #pragma comment( lib, "ws2_32.lib" )#define PORT 2046#define BACKLOG 10#define TRUE 1void main( void ){int iServerSock;int iClientSock;char *buf 阅读全文
posted @ 2013-06-13 23:34 MMLoveMeMM 阅读(687) 评论(0) 推荐(0)
摘要: 一.TCP/IP协议的体系结构: 整个TCP/IP协议族分四层: 1.链路层:包括系统中的驱动程序和网络接口卡,他们和具体的物理媒介(如电缆)一起,向高层提供物理链路。 2.网络层:主要任务是做出数据分组的路由选择。他由IP协议,ICMP协议,IGMP协议组成。 3.运输层:为相互通信的主机提供端到端的通信能力。 其中TCP协议向应用层提供可靠的数据连接,他保证进程间数据传输的正确,有序和不重复,UDP协议仅仅为应用层提供数据报的分组发送服务,数据传输的可靠性只能通过用用层来保证。 4.应用层:负责处理具体的TCP/IP协议应用的细节。常见的应用包括Telnet(远程登录)和FTP(文件传输协 阅读全文
posted @ 2013-06-13 23:18 MMLoveMeMM 阅读(316) 评论(0) 推荐(0)
摘要: 1.线程的创建: (1)CWinThread* MainThread; MainThread=AfxBeginThread(MyThread,this,THREAD_PRIORITY_NORMAL,0,0,NULL ); (2)后台工作线程函数 UINT MyThread( LPVOID pParam ) { C类Dlg * pDlg = (C类Dlg*)pParam; pDlg->Function(pDlg->parament); return 0; } (3) Function(parament)//////用来执行的函数 { } 2.线程的暂停和继续: 暂停线程:Mai... 阅读全文
posted @ 2013-06-13 20:50 MMLoveMeMM 阅读(992) 评论(0) 推荐(0)
摘要: 前些日子感觉得练习一下VC了,所以就有想,平时发短信那么累,手机键盘又不好用,而我又有数据线,为什么不可以用电脑直接发送短信呢?想法一出来,就开始找资料开始行动吧! 由于程序涉及的方面很多,因此只讲关键的主要的部分。 首先,得了解手机和电脑之间是通过什么通讯的,我的手机是有红外接口,电脑上接一个红外适配器,就可以与手机连接了,而Windows是把红外设备当作一个串口来看待的,所以关键就是在于如何用程序来控制COM端口来发送和接收数据。在网上找了很多资料然后就开始编写代码: 列举出系统中的所有的串口:这个需要操作注册表来实现,代码如下:void CSendMsgDlg::GetAllCom(){ 阅读全文
posted @ 2013-06-11 18:49 MMLoveMeMM 阅读(3245) 评论(0) 推荐(0)
摘要: Option Explicit '************************************************ '******************COM 端口设置****************** '************************************************ Public Function COMSet(CommObj As MSComm, ByVal mPort As String, ByVal mSet As String) As Boolean On Error GoTo Err If CommObj 阅读全文
posted @ 2013-06-11 18:39 MMLoveMeMM 阅读(506) 评论(0) 推荐(0)
摘要: 简介通过本文及配套示例源码你可以更加灵活的控制Excel表格文件,其中包括创建新Excel文件、写入表格数据、读取表格数据(包括对原建Excel文件自已手工添加的行、列数据的准确读取),删除已有Excel表格,对表格中指定行、列、单元格进行查询、插入、替换等操作,同时还可以将生成的Excel文件转换为按指定分隔符分隔的其它文本格式的文件。下面是把此方法用VC6编写的示例程序运行效果:基本思路基础实现方法同上篇文章《直接通过ODBC读、写Excel表格文件》相同,都是通过ODBC来把Excel表格文件当成数据库文件来进行读、写等操作,所以在Excel表格文件中写入的行头名必须是唯一的(不要重名, 阅读全文
posted @ 2013-06-11 00:30 MMLoveMeMM 阅读(2406) 评论(0) 推荐(0)
摘要: 八、线程的同步虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能读数据库的线程读取的是未完全更新的数据库,因为可能在读的时候只有一部分数据被更新过。使隶属于同一进程的各线程协调一致地工作称为线程的同步。MFC提供了多种同步对象,下面我们只介绍最常用的四种:临界区(CCri 阅读全文
posted @ 2013-06-11 00:24 MMLoveMeMM 阅读(208) 评论(0) 推荐(0)
摘要: 七、线程间通讯一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标准类型的全局变量,我们建议使用volatile 修饰符,它告诉编译器无需对该变量作任何的优化,即无需将它放到一个寄存器中,并且该值可被外部改变。如果线程间所需传递的信息较复杂,我们可以定义一个结构,通过传递指向该结构的指 阅读全文
posted @ 2013-06-11 00:22 MMLoveMeMM 阅读(181) 评论(0) 推荐(0)
摘要: 想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行:1. 在StdAfx.h文件中加入:view sourceprint?1.#include < afxdb.h > 2.#include < odbcinst.h >2. 通过ODBC直接创建Excel文件并在表中插入数据(暂定文件名:Demo.xls)view sourceprint?01.//创建并写入Excel文件 02.void CRWExcel::Wr 阅读全文
posted @ 2013-06-11 00:20 MMLoveMeMM 阅读(1948) 评论(0) 推荐(0)
摘要: 五、MFC对多线程编程的支持MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的,它们都只需线程的启动地址即可启动线程来执行任务。在MFC中,一般用全局函数AfxBeginThread()来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工作者线程和用户 阅读全文
posted @ 2013-06-11 00:18 MMLoveMeMM 阅读(187) 评论(0) 推荐(0)
摘要: 在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵活。其二是调用Windows的API函数,这种方法可以清楚地掌握串口通信的机制,并且自由灵活。本文我们只介绍API串口通信部分。串 阅读全文
posted @ 2013-06-11 00:14 MMLoveMeMM 阅读(673) 评论(0) 推荐(0)
摘要: VBScript(JScript)是应用广泛,简单易学的脚本语言。使用VBScript(JScript)调用COM组件则更是容易。那么,如果在你的程序中也能够执行脚本,则在简化程序设计的基础上,还会极大地提升软件的功能。为了方便大家使用这个功能,我写了一个具有自动化(Automation/IDispatch)功能的EXE包装程序来代理调用脚本执行。这个包装程序接口只有2个函数,说明如下:Void SetScriptLanguage(long nLanguage);功能:设置使用脚本语言的类型参数:0=使用VBScript 1=使用Jscript说明:如果不调用这个函数,则默认使用VBScrip 阅读全文
posted @ 2013-06-11 00:11 MMLoveMeMM 阅读(1557) 评论(0) 推荐(0)
摘要: 本文演示如何调用从 Visual Basic 脚本函数的各种方法的脚本控件提供了示例代码。回到顶端 | 提供反馈更多信息重要提示: Microsoft 提供的编程示例仅用于说明,没有任何明示或暗示的担保,包括但不是限于) 对适销性和/或针对特定用途的适用性的暗示保证。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。脚本控件可以承载 VBScript、 JavaScript 和任何其他兼容的脚本语言,因此您的用户可以编写您的应用程序以相似的方式与使用 VBScript 或 JavaScript 提供其他功能的 Web 页的脚本。下面 Microsoft 知识库中相应的文章介绍了如何获取 阅读全文
posted @ 2013-06-10 19:45 MMLoveMeMM 阅读(462) 评论(0) 推荐(0)
摘要: 配置环境:DDK,需要setupAPI相关头文件和库USB口的打开读写操作程序的通用性是很好的,不同的USB只需修改不同的GUID至于调试,你怎么调试串口程序就怎么调试USB程序,大小方面一次性发送和接受数据不大于64个字节.这个可能和USB设备有关使用一个GUIDguidHID_1查找并打开一个USB设备extern "C" int PASCAL SearchUSBDevice(){HANDLE hUsb;int nCount, i, j;//标记同一设备个数HDEVINFO hDevInfoSet;BOOL bResult; PSP_DEVICE_INTERFACE_D 阅读全文
posted @ 2013-06-09 23:45 MMLoveMeMM 阅读(2636) 评论(0) 推荐(0)
摘要: VC并口读写int OpenLPT() { if ((hdlPrinter = CreateFile("LPT1", GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL )) == (HANDLE) -1 ) { return -1 ; } return 0; } int CloseLPT () { if (hdlPrinter != (HANDLE) -1) { CloseHandle(hdlPrinter); hdlPrinter = (HANDLE)-1; 阅读全文
posted @ 2013-06-09 23:39 MMLoveMeMM 阅读(727) 评论(0) 推荐(0)