精华内容
下载资源
问答
  • API通信函数编程1 16位串口应用程序中,使用的16位的Windows API通信函数:①OpenComm()打开串口资源,并指定输入、输出缓冲区的大小(以字节计)CloseComm() 关闭串口;例:int idComDev;idComDev = OpenComm("COM1", ...

    API通信函数编程

    1 16位串口应用程序中,使用的16位的Windows API通信函数:

    ①OpenComm()打开串口资源,并指定输入、输出缓冲区的大小(以字节计)

    CloseComm() 关闭串口;

    例:int idComDev;

    idComDev = OpenComm("COM1", 1024, 128);

    CloseComm(idComDev);

    ②BuildCommDCB() 、setCommState()填写设备控制块DCB,然后对已打开的串口进行参数配置; 例:DCB dcb;

    BuildCommDCB("COM1:2400,n,8,1", &dcb);

    SetCommState(&dcb);

    ③ ReadComm 、WriteComm()对串口进行读写操作,即数据的接收和发送.

    例:char *m_pRecieve; int count;

    ReadComm(idComDev,m_pRecieve,count);

    Char wr[30]; int count2;

    WriteComm(idComDev,wr,count2);

    16位下的串口通信程序最大的特点就在于:串口等外部设备的操作有自己特有的API函数;而32位程序则把串口操作(以及并口等)和文件操作统一起来了,使用类似的操作。

    2 在MFC下的32位串口应用程序

    32位下串口通信程序可以用两种方法实现:利用ActiveX控件;使用API 通信函数。

    使用ActiveX控件,程序实现非常简单,结构清晰,缺点是欠灵活;使用API 通信函数的优缺点则基本上相反。

    使用ActiveX控件:

    VC++ 6.0提供的MSComm控件通过串行端口发送和接收数据,为应用程序提供串行通信功能。使用非常方便,但可惜的是,很少有介绍MSComm控件的资料。

    ⑴.在当前的Workspace中插入MSComm控件。

    Project菜单------>Add to Project---->Components and Controls----->Registered

    ActiveX Controls--->选择Components: Microsoft Communications Control,

    version 6.0 插入到当前的Workspace中。

    结果添加了类CMSComm(及相应文件:mscomm.h和mscomm.cpp )。

    ⑵.在MainFrm.h中加入MSComm控件。

    protected:

    CMSComm m_ComPort;

    在Mainfrm.cpp::OnCreare()中:

    DWORD style=WS_VISIBLE|WS_CHILD;

    if (!m_ComPort.Create(NULL,style,CRect(0,0,0,0),this,ID_COMMCTRL)){

    TRACE0("Failed to create OLE Communications Control\n");

    return -1; // fail to create

    }

    ⑶.初始化串口

    m_ComPort.SetCommPort(1); //选择COM?

    m_ComPort. SetInBufferSize(1024); //设置输入缓冲区的大小,Bytes

    m_ComPort. SetOutBufferSize(512); //设置输入缓冲区的大小,Bytes//

    if(!m_ComPort.GetPortOpen()) //打开串口

    m_ComPort.SetPortOpen(TRUE);

    m_ComPort.SetInputMode(1); //设置输入方式为二进制方式

    m_ComPort.SetSettings("9600,n,8,1"); //设置波特率等参数

    m_ComPort.SetRThreshold(1); //为1表示有一个字符引发一个事件

    m_ComPort.SetInputLen(0);

    ⑷.捕捉串口事项。MSComm控件可以采用轮询或事件驱动的方法从端口获取数据。我们介绍比较使用的事件驱动方法:有事件(如接收到数据)时通知程序。在程序中需要捕获并处理这些通讯事件。

    在MainFrm.h中:

    protected:

    afx_msg void OnCommMscomm();

    DECLARE_EVENTSINK_MAP()

    在MainFrm.cpp中:

    ◆◆

    评论读取中....

    请登录后再发表评论!

    ◆◆

    修改失败,请稍后尝试

    展开全文
  • 拼错 MsBox 错,应该是MsgBox

    拼错 MsBox 错,应该是MsgBox

    展开全文
  • 主要内容是,自定义函数过程和子过程声明与调用的语法格式、参数含义及功能特性;三种参数传递方式(值传递、地址传递、数组传递)的应用;嵌套调用和递归调用的执行流程以及递归过程的特点
  • PrivateSubCommand1_Click()Caption="b样条曲面"CommonDialog...Y * Sa)) * b1 End Sub 就是这个程序,就是在程序 Private Sub S56()显示黄色,在程序MAXZ(I) = 显示蓝色,提示编译错误,函数或者程序未定义 展开

    PrivateSubCommand1_Click()Caption="b样条曲面"CommonDialog1.Filter="数据文件*.txt|*.txt|(*.*)|*.*"CommonDialog1.ShowOpenfilehandle=FreeFile()ReDimXB(4,4),YB(4,4),ZB(4,4),P...

    Private Sub Command1_Click()

    Caption = "b样条曲面"

    CommonDialog1.Filter = "数据文件*.txt|*.txt|(*.*)|*.*"

    CommonDialog1.ShowOpen

    filehandle = FreeFile()

    ReDim XB(4, 4), YB(4, 4), ZB(4, 4), PX(4), PY(4), PZ(4)

    ReDim UX(4), UY(4), UZ(4), XYZ(4), MAXZ(640)

    Open CommonDialog1.FileName For Input As #filehandle

    For I = 1 To 4: For J = 1 To 4: Input #filehandle, XB(I, J): Next J, I

    For I = 1 To 4: For J = 1 To 4: Input #filehandle, YB(I, J): Next J, I

    For I = 1 To 4: For J = 1 To 4: Input #filehandle, ZB(I, J): Next J, I

    Close #filehandle

    Pi = 3.14159: NL = 15: NP = 80: KX = 200: KZ = 200: dal = 1 / NL: dap = 1 / NP

    ta = Pi / 8: ca = Cos(ta) / 2: Sa = Sin(ta) / 2

    x0 = X1 / 2: y0 = Y1 * 1.5: b1 = G / 600

    Call S56

    End Sub

    Private Sub S56()

    14000 'sub双三次B样条曲面

    Pic1.Cls

    For I = 0 To 640: MAXZ(I) = -1000: Next

    For I = 0 To NL: T = I * dal: LR = 1: Call S56a: '分量UV计算

    For J = 0 To NP: T = J * dap: Call S56b: 'UV()

    X = 0: Y = 0: Z = 0

    For JJ = 1 To 4

    X = X + XYZ(JJ) * PX(JJ): Y = Y + XYZ(JJ) * PY(JJ)

    Z = Z + XYZ(JJ) * PZ(JJ)

    Next JJ

    Call S56c: II = J: Call S56d: '画曲线

    Next J, I

    For I = 0 To 640: MAXZ(I) = -1000: Next

    For I = NL To 0 Step -1: T = I * dal: LR = 2: Call S56a: '分量UV计算

    For J = 0 To NP: T = J * dap: Call S56b: 'UV()

    X = 0: Y = 0: Z = 0

    For JJ = 1 To 4

    X = X + XYZ(JJ) * PX(JJ): Y = Y + XYZ(JJ) * PY(JJ)

    Z = Z + XYZ(JJ) * PZ(JJ)

    Next JJ

    Call S56c: II = J: Call S56d: '画曲线

    Next J, I

    For I = 1 To 4: For J = 1 To 4

    X = XB(I, J): Y = YB(I, J): Z = ZB(I, J): Call S56c: '点变换

    X1 = x0 + ixx / 2: Y1 = y0 - izz / 2

    If J = 1 Then Pic1.PSet (X1, Y1) Else Pic1.Line -(X1, Y1)

    Next J, I

    For J = 1 To 4: For I = 1 To 4

    X = XB(I, J): Y = YB(I, J): Z = ZB(I, J): Call S56c: '点变换

    X1 = x0 + ixx / 2: Y1 = y0 - izz / 2

    If J = 1 Then Pic1.PSet (X1, Y1) Else Pic1.Line -(X1, Y1)

    Next I, J

    End Sub

    Private Sub S56b()

    14280 '分量 uv计算

    XYZ(1) = (1 - T) ^ 3 / 6: XYZ(2) = (3 * T ^ 3 - 6 * T ^ 2 + 4) / 6

    XYZ(3) = (-3 * T ^ 3 + 3 * T ^ 2 + 3 * T + 1) / 6: XYZ(4) = T ^ 3 / 6

    End Sub

    Private Sub S56a()

    14320 'upor

    Call S56b

    For K = 1 To 4: UX(K) = 0: UY(K) = 0: UZ(K) = 0: Next

    For K = 1 To 4: For L = 1 To 4

    If LR = 1 Then

    I1 = K: J1 = L

    Else

    I1 = L: J1 = K

    End If

    UX(K) = UX(K) + XYZ(L) * XB(J1, I1)

    UY(K) = UY(K) + XYZ(L) * YB(J1, I1)

    UZ(K) = UZ(K) + XYZ(L) * ZB(J1, I1)

    Next L, K

    For K = 1 To 4

    PX(K) = UX(K): PY(K) = UY(K): PZ(K) = UZ(K)

    Next

    End Sub

    Private Sub S56c()

    14440 '点变换

    ixx = (KX * (X + Y * ca)) * b1: izz = (KZ * (Z + Y * Sa)) * b1

    End Sub

    就是这个程序,就是在子程序 Private Sub S56()显示黄色,在子程序MAXZ(I) = 显示蓝色,提示编译错误,函数或者子程序未定义

    展开

    展开全文
  • VB过程求组合数.rar

    2019-07-10 11:26:47
    VB过程求组合数,输入mn,按等号键可得组合数,来看如下的简单代码:  Private Sub f(m As Integer, p As Long) '自定义通用过程,用于求阶乘  Dim i As Integer '声明局部变量  p = 1 '赋初值  For i = 1 ...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼在lable1里Private Sub Form_Load()Dim i&, k&Dim m() As ByteDim prew As Long, preh As Long, pret As LongDim h As Long, w As LongScreenDC = GetWindowDC(0...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    在lable1

    1fe4a08aa7faa469570c5e2043eef74c.png

    Private Sub Form_Load()

    Dim i&, k&

    Dim m() As Byte

    Dim prew As Long, preh As Long, pret As Long

    Dim h As Long, w As Long

    ScreenDC = GetWindowDC(0)

    ScreenW = Screen.Width / Screen.TwipsPerPixelX

    ScreenH = Screen.Height / Screen.TwipsPerPixelY

    ReDim m(ScreenW / 3, ScreenH / 3)

    Label1.Visible = False

    Me.ScaleMode = 3

    Me.Show

    pret = Me.Top: prew = Me.Width: preh = Me.Height

    Me.Move Me.Left, Screen.Height * 2, Screen.Width / 3, Screen.Height / 3

    DoEvents

    Me.AutoRedraw = True

    Label1.AutoSize = True

    Label1 = YourWord

    Label1.Font.Size = 100

    Label1.Font.Size = Label1.Font.Size * (Me.ScaleWidth / Label1.Width) * BorderScale

    Label1.Font.Size = Label1.Font.Size * (Me.ScaleWidth / Label1.Width) * BorderScaleMe.FontName = Label1.FontName

    Me.FontSize = Label1.FontSize

    Me.ForeColor = 0

    CurrentX = (Me.ScaleWidth - Label1.Width) / 2

    CurrentY = (Me.ScaleHeight - Label1.Height) / 2

    Print Label1

    For h = 1 To ScreenH / 3

    For w = 1 To ScreenW / 3

    If Point(w, h) = 0 Then

    m(w, h) = 1

    End If

    Next w

    Next h

    Cls

    SNOW_MAX = ScreenW * ScreenH \ SnowScale

    ReDim Snow&(SNOW_MAX, 1), Last&(SNOW_MAX)

    Randomize

    For i = 0 To SNOW_MAX

    NewSnow i

    Snow(i, 1) = -Rnd * ScreenH

    Next

    Me.Move Me.Left, pret, prew, preh

    Me.WindowState = 1

    On Error Resume Next

    Do

    For i = 0 To SNOW_MAX

    SetPixel ScreenDC, Snow(i, 0), Snow(i, 1), Last(i)

    Snow(i, 0) = Snow(i, 0) + Rnd * FALL_SPEED - FALL_SPEED / 2

    Snow(i, 1) = Snow(i, 1) + Rnd * FALL_SPEED

    If Snow(i, 0) < 0 Or Snow(i, 0) > ScreenW Or Snow(i, 1) > ScreenH Then

    NewSnow i

    Else

    k = Last(i)

    Last(i) = GetPixel(ScreenDC, Snow(i, 0), Snow(i, 1))

    SetPixel ScreenDC, Snow(i, 0), Snow(i, 1), SnowColor

    If m(Snow(i, 0) / 3, Snow(i, 1) / 3) Then

    If Rnd < SpotSpeed Then

    If Rnd < 0.5 Then Last(i) = WordColor1 Else Last(i) = WordColor2

    End If

    End If

    End If

    Next

    Sleep FALL_Interval&

    DoEvents

    If myend Then Exit Sub

    Loop

    End Sub

    Private Sub NewSnow(i&)

    Snow(i, 0) = Rnd * ScreenW

    Snow(i, 1) = 0

    Last(i) = GetPixel(ScreenDC, Snow(i, 0), 0)

    End Sub

    Private Function ColorDec(ByVal Color1&, ByVal Color2&) As Long

    Dim R1%, G1%, B1%

    Dim R2%, G2%, B2%

    GetRGB Color1, R1, G1, B1

    GetRGB Color2, R2, G2, B2

    ColorDec = Abs(R1 - R2) + Abs(G1 - G2) + Abs(B1 - B2)

    End Function

    Private Sub GetRGB(ByVal Color&, ByRef r%, ByRef g%, ByRef b%)

    r = (Color Mod 256)

    b = (Int(Color \ 65536))

    g = ((Color - (b * 65536) - r) \ 256)

    End Sub

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    myend = True

    DoEvents

    DoEvents

    End

    End Sub

    Private Sub Label1_Click()

    End Sub

    展开全文
  • vb.net的过程和函数

    千次阅读 2011-12-05 11:11:29
    1.vb.net的Sub过程 Sub过程是在响应事件时执行的代码块。将模块中的代码分成Sub过程后,在应用程序中查找修改代码变得更容易了。Sub过程的语法是: {Private|Public|Friend} Sub subname([arguments list])  ...
  • 秋2014.02.19采纳率:54%等级:11已帮助:3999人虽然VB提供了常用的标准函数P71,可以使用这些标准函数来实现某些数学计算或数据类型的转换,但许多应用程序常常需要自己来定义函数,以实现某种特定的计算。...
  • Vb 过程函数(cektop)

    2009-05-14 04:56:11
    过程 过程是用来执行一个特定任务的一段程序代码。VB应用程序由若干过程组成,这些...在VB6.0中,用户自定义过程分为:Sub 子过程、Function函数,它们的主要区别在与Sub 子过程没有返回值,Function函数有返回值。
  • 第6章 过程和函数 6.1 过程 6.2 参数 6.3 常用内部函数 6.4 典型应用 6.1 过程 ...过程 事件过程 通用过程 Sub过程程序过程 Function过程函数过程 Sub过程不返回值而Function过程要向调用它的语句返回值 6.1.1 Sub
  • 给个思路吧:将PX=Eval(Eval(Eval(Eval(Y&Chr(47)&Sin(af))&Chr(42)&Cos(bf))&Chr(47)&Eval((1.6&Chr(42)&Sqr(2#))))&Chr(42)&100)写进VBS,然后调用。...
  • VB基本函数大全

    2021-07-28 09:33:22
    Abs 函数:返回数的绝对值。And 运算符:执行两个表达式的逻辑连接。Array 函数:返回含一数组的变体 。...CBool 函数:返回已被转换为 Boolean 类型的变体的表达式。CByte 函数:返回已被转换为字节子...
  • vb函数全解

    2012-10-18 10:36:39
    vb函数全解 Abs 函数 返回数的绝对值。 And 运算符 执行两个表达式的逻辑连接。 Array 函数 返回含一数组的 变体 。 Asc 函数 返回字符串首字母的 ANSI 字符代码。 赋值运算符 (=) 给变量或属性赋值。 Atn 函数...
  • VB中Sub过程与Function过程的区别

    千次阅读 2020-01-14 13:39:58
    VB的通用过程分为两种类型:Sub过程和Function过程。通用过程既可以保存在窗体模块(.Frm)中,也可以保存在标准模块(.Bas)中。通用过程与事件过程不同,它不依附于某一对象,也不是有对象的某一事件驱动或由系统...
  • VB--dim函数

    千次阅读 2019-06-03 14:25:30
    但是经过Dim定义的没有经过定义的,使用起来效果真的一样吗? 其实两个还是有差别的。 简单程序中看不出差别,如果以后程序复杂了,我认为还是有差别的。 还是先用Dim定义一下比较好。 因为,以后我们还会学到...
  • 1PrivateSubForm_Click()DimiAsInteger,nAsIntegerDima()AsIntegern=3ReDima(n)Fori=1Tona(i)=Rnd*100NextCallSortnum(a,n)Print"Max:"&MaxNum(a,n)Print"Min:"&MinNum(a,...
  • 经常看见vba的IsFileExists显示出函数子过程未定义,我的问题就是IsFileExists函数没写所以出问题,在相应的模块下加如下代码即可: Function IsFileExists(ByVal strFileName As String) As Boolean Dim ...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼1、FJ?是什么啊2、find在vba里是查找,并不是像工作表函数那样。... val(Left(Fj, instr(Fj,"-") - 1))……4、楼上说了5、过程上的变量程序运行完了,...
  • VB字符串处理函数一览

    万次阅读 2017-10-10 11:49:20
    VB字符串处理函数一览 mid(字符串,从第几个开始,长度) ByRef 在[字符串]中[从第几个开始]取出[长度个字符串]  例如 mid("小欣无敌",1,3) 则返回 "小欣无"  instr(从第几个开始,字符串1,...
  • function是函数,sub是程序,都可以传递参数,但函数有返回值,程序没有 function可以用自身名字返回一个值,sub需定义别的变量,用传址方式传回值。 Sub过程与Function过程的区别: Sub过程定义时无需...
  • VB常用字符串函数

    千次阅读 2015-02-27 09:27:30
    asc(字符) Byval返回[字符]的ascii编码,若有多个字符,则只返回首字符的ascii编码,Chr()函数是一个可逆的过程 例如 asc("小") 则返回 -12127 ; asc("小欣无敌") 也返回 -12127 chr(ASCii编码) Byval ...
  • VB常用函数(很全)

    2020-12-20 14:31:12
    VB常用函数(很全)》由会员分享,可在线阅读,更多相关《VB常用函数(很全)(7页珍藏版)》请在人人文库网上搜索。1、VB常用函数Time返回系统时钟的当前时间。Date返回系统时钟的当前日期。Now返回代表当前日期时间...
  • VB几种函数参数传递方法,Variant,数组,Optional,ParamArray  一) 过程的参数被缺省为具有 Variant 数据类型。  1)ByRef按 地址传递参数在 VB 中是缺省的  按地址传递参数后,过程返回的也是地址,函数中...
  • 我用VB6企业版封装了一个DLL,其中有4个VB窗体——form1,form2,form3,form4,在excel 2003的VBE中用VBA代码调用DLL中的类模块、标准模块均成功,但是就是调用显示不了VB窗体!!!应该怎么调用?才能显示??? ...
  • plsql 过程函数

    千次阅读 2018-03-30 14:42:18
    本篇主要内容如下:6.1 引言6.2 创建函数6.3 存储过程6.3.1 创建过程6.3.2 调用存储过程6.3.3 AUTHID6.3.4 PRAGMA AUTONOMOUS_TRANSACTION6.3.5 开发存储过程步骤6.3.6 删除过程和函数6.3.7 过程与函数的...
  • VB调用API函数

    万次阅读 多人点赞 2016-01-13 20:17:36
    API函数快速入门--怎样在VB中声明使用API函数--     一、在VB中声明API函数有两种方法:如果我们只在某个窗体中使用API函数,我们可以在窗体代码的 General部分声明它:    声明的语法是:  Private ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,569
精华内容 7,427
关键字:

vb子过程和函数过程