精华内容
下载资源
问答
  • 调用C++生成的dll,dll接口是variant变体型,vb传一个二进制数组给它,vb6.0能够正常接收,.net提示类型不一致,请问是什么原因? 有什么解决办法吗?DLL是UDP送信的,有很多内存操作,很难修改。用VB也很难实现,...
  • vb.net 教程 4-9 二进制文件读写 3

    千次阅读 2017-07-18 20:58:19
    判断文件是什么类型,为了简化操作,仅仅只判断是否可执行文件、png文件、gif文件、jpeg文件。 上述文件对应的前面几个字节是: 可执行文件:4D 5A PNG文件:89 50 4E 47 Jpeg文件:FF D8 FF E0 00 10 4...

    版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
    在上一节的基础上,本节做一些扩展。

    判断文件是什么类型,为了简化操作,仅仅只判断是否可执行文件、png文件、gif文件、jpeg文件。

    上述文件对应的前面几个字节是:

    可执行文件:4D 5A
       PNG文件:89 50 4E 47
      Jpeg文件:FF D8 FF E0 00 10 4A 46 49 46
     gif89文件:47 49 46 38 39 61

     

    需要说明的是,我没有真正去查找相关文件格式信息,这里只是为了说明二进制文件的读取,以上资料是用WinHex查看得来的,不一定就是真正的文件头,

    需要相关的文件头信息,请网上自行搜索。

    相关代码如下:

        Private Sub btnOpenFile_Click(sender As Object, e As EventArgs) Handles btnOpenFile.Click
            Dim filename As String
            If OpenFileDialog1.ShowDialog <> DialogResult.OK Then
                Exit Sub
            End If
            filename = OpenFileDialog1.FileName
            lblFilePath.Text = filename
            txtFileType.Text = checkFileType(filename)
        End Sub

    具体实现代码:

        Private Function checkFileType(ByVal filename As String) As String
            Try
                Dim fs As FileStream = New FileStream(filename, FileMode.Open)
                If fs.Length < 10 Then Return "未知文件"
                Dim br As BinaryReader = New BinaryReader(fs)
                Dim byteRead() As Byte
                Dim intReadLength As Integer = 10
                ReDim byteRead(intReadLength - 1)
    
                byteRead = br.ReadBytes(intReadLength)
    
                br.Close()
                fs.Close()
    
                If byteRead(0) = Convert.ToInt32("4D", 16) And byteRead(1) = Convert.ToInt32("5A", 16) Then Return "可执行文件"
                If byteRead(0) = Convert.ToInt32("89", 16) And byteRead(1) = Convert.ToInt32("50", 16) And byteRead(2) = Convert.ToInt32("4E", 16) _
                    And Convert.ToInt32("47", 16) Then Return "PNG文件"
                If byteRead(0) = Convert.ToInt32("47", 16) And byteRead(1) = Convert.ToInt32("49", 16) And byteRead(2) = Convert.ToInt32("46", 16) _
                    And byteRead(3) = Convert.ToInt32("38", 16) And byteRead(4) = Convert.ToInt32("39", 16) _
                    And byteRead(5) = Convert.ToInt32("61", 16) Then Return "Gif文件"
                If byteRead(0) = Convert.ToInt32("FF", 16) And byteRead(1) = Convert.ToInt32("D8", 16) And byteRead(2) = Convert.ToInt32("FF", 16) _
                    And byteRead(3) = Convert.ToInt32("E0", 16) And byteRead(4) = Convert.ToInt32("00", 16) _
                    And byteRead(5) = Convert.ToInt32("10", 16) And byteRead(6) = Convert.ToInt32("4A", 16) _
                    And byteRead(7) = Convert.ToInt32("46", 16) And byteRead(8) = Convert.ToInt32("49", 16) _
                    And byteRead(9) = Convert.ToInt32("46", 16) Then Return "Jpeg文件"
    
    
                    Return ""
            Catch ex As Exception
                Return ""
            End Try
    
        End Function

    运行时如图:

     

    由于二进制文件写入和读取比较类似,这里不再累述,

    在下一节中,我们将学习做一个存档文件修改器,将会有二进制文件读写的详细代码。

     

     

    由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

    学习更多vb.net知识,请参看 vb.net 教程 目录

     

    展开全文
  • 大家在学习Linux中,会遇到过源码安装的困扰,今天我就以nginx安装过程中会出现的一些问题来举例,和深入的了解源码安装的过程。...计算机认识什么语言 计算机语言识别二进制 0和1高级程序语言 VB vf c c++ Java ...

    大家在学习Linux中,会遇到过源码安装的困扰,今天我就以nginx安装过程中会出现的一些问题来举例,和深入的了解源码安装的过程。

    首先Linux软件包大致可分为二进制包,源码包、使用的工具也各不相同。源代码包是没有经过编译的包,需要经过GCC、C++编译器环境才运行,二进制包无需编译,可以直接安装使用。

    计算机认识什么语言 计算机语言识别二进制 0和1

    高级程序语言 VB vf c c++ Java 越是高级语言 语法越是简单 逻辑越难

    c python 比较消耗 cup 大型公司 华为自主研发芯片

    Java 比较消耗内存 中小企业 Tomcat多 服务器内存

    shell Linux 内核 网络、互联网 服务器、嵌入式

    怎么去区分源码包,可以通过后缀简单区分源码包和二进制包。例如.tar.gz . zip 结尾的包通常之为源码,以rpm结尾的软件包称之二进制包。

    第一步:首先要下载源码包

    登入http://nginx.org官网官网网站,鼠标右键点击复制软件链接

    26f57a3c78791f9c9c8c3b220ab51d70.png

    蓝色的nginx.0.17就是版本

    1)在命令行输入wget http://nginx.org/download/nginx-1.4.7.tar.gz --就可以开始下载,首先要有wget的命令,一般最小化安装没有 yum -y install wget 进行安装。

    2)tat -xf nginx-1.4.7.tar.gz 进行解压

    3)cd nginx-1.4.7

    bfe4ded66a8a11c1ae6a79ee8eea0a70.png

    预编译

    第二步:源码包安装

    1)./configure 预编译,主要用于检测系统基准环境库是否满足,生成makefile文件

    --prefix=/usr/local/nginx 路径 安装位置 --user= 用户名 --group=用户组 其他就是功能参数--with-http_ssl_module 自定义的安装模块

    2)make 编译,基于第一步生成的makefile文件,进行源码代码源码额编译

    3)make install 安装,编译完毕之后,将相关的可运行文件安装至系统中

    但是编译完以后还要一些其他的依赖包,怎么知道是什么安装包呢?

    a72b70d13883467a904c0230c314b321.png

    error:看提示

    PCRE就是要求我们要安装的依赖包。

    yum -y install pcre-develv

    安装完成之后不知道有没有有错?

    那么我们就用一个echo $?的命令来进行检测

    当输出结果为0时,那么就是运行成功 非0则是表示失败

    echo $? 的意思就是检测上一个运行命令结果是否正确。

    第三步:启动nginx服务

    useradd nginx -s /sbin/nologin 创建预编译指定用户

    /nginx/local/nginx/sbin/nginx 启动nginx

    /nginx/local/nginx/sbin/nginx -s stop 关闭应用

    如果所命令行启动的命令太长可以使用环境变量

    PATH=$PATH:/etc/local/nginx/sbin/nginx

    sysyemctl start nginx

    注:要关闭防火墙

    ln -s /usr/local/nginx/sbin/nginx nginx

    软链接的方式简化命令行

    systemctl stop firewalld 关闭防火墙

    setenforce 0 selinux开启宽松模式

    ab430d0ef176884d4ea698c4489f45e4.png

    端口显示

    第四步:查看端口信息&测试

    netstat -lnutp | grep 80

    ab430d0ef176884d4ea698c4489f45e4.png

    端口显示

    -a 显示所有端口,包括正在监听的

    -t 显示TCP协议的连接情况

    -u 显示UDP协议的连接情况

    -l 以数字形式显示

    -p 显示指定的协议信息

    -n 显示所有已建立的有效连接

    测试:在浏览器输入 http://服务器的IP地址

    展开全文
  • .vbp 关键的文件,它用来保存当前工程中的工程版本、版权及窗体的信息.vbw 保存了你最后保存工程时候的情况,比如打开了什么窗口,你编辑到了第几行等。以便下次打开能很容易找到上次的感觉.MSSCCPRJ.SCCVisu...

    .frm 是每个窗体都有的,保存窗体的代码,你可以用记事本打开;

    .frx 窗体里使用图片、图标等资料,保存的是资源;

    .vbp 和.vbw 保存一个工程时他会自动生成这两个文件。

    .vbp 是关键的文件,它用来保存当前工程中的工程版本、版权及窗体的信息

    .vbw 保存了你最后保存工程时候的情况,比如打开了什么窗口,你编辑到了第几行等。以便下次打开能很容易找到上次的感觉.

    MSSCCPRJ.SCC是Visual SourceSafe的配置。用于团体开发,一般没用。

    b09b6778e4713bfde055e65d9595c56b.png

    工程文件格式:Microsoft Visual Basic 在设计和运行时都利用和创建一些文件。工程或应用程序需要哪些文件取决于它的范围和功能。

    工程文件的扩展名:Visual Basic 在创建和编译工程时要产生许多文件。这些文件分类如下:设计时文件、杂项开发文件和运行时文件。

    设计时文件是工程的建造块:例如基本模块 (.bas) 和窗体模块 (.frm)。

    杂项文件是由 Visual Basic 开发环境中的各种不同的进程和函数产生的:例如打包和展开向导从属文件 (.dep)。

    febc7a7bf2772792ab2e76228da1118b.png

    设计时和杂项文件:开发应用程序时会产生各种设计时文件和其它杂项文件,如下表所列:

    扩展名 描述

    .bas 基本模块

    .cls 类模块

    .ctl 用户控件文件

    .ctx 用户控件的二进制文件

    .dca 活动的设计器的高速缓存

    .ddf 打包和展开向导 CAB 信息文件

    .dep 打包和展开向导从属文件

    .dob ActiveX 文档窗体文件

    .dox ActiveX 文档二进制窗体文件

    .dsr 活动的设计器文件

    .dsx 活动的设计器的二进制文件

    .dws 部署向导脚本文件

    .frm 窗体文件

    .frx 二进制窗体文件

    .log 加载错误的日志文件

    .oca 控件类型库缓存文件

    .pag 属性页文件

    .pgx 二进制属性页文件

    .res 资源文件

    .tlb 远程自动化类型库文件

    .vbg Visual Basic 组工程文件

    .vbl 控件许可文件

    .vbp Visual Basic 工程文件

    .vbr 远程自动化注册文件

    .vbw Visual Basic 工程工作空间文件

    .vbz 向导发射文件

    .wct WebClass HTML 模板

    运行时文件

    编译应用程序时,所有必须的设计时文件都被包括在运行时可执行文件中,运行时文件在下表中列出:

    扩展名 描述

    .dll 运行中的 ActiveX 部件

    .exe 可执行文件或 ActiveX 部件

    .ocx ActiveX 控件

    .vbd ActiveX 文档状态文件

    .wct WebClass HTML 模板

    展开全文
  • 原题:一个正整数,转成二进制后,这个二进制数包含多少个1?  这个问题在网上看过多次,几番思考,也没有什么好的办法。采用最基本的办法,逐位判断,1的统计加1,最后将统计数返回。  以下这个思路的VB2008...

    原题:一个正整数,转成二进制后,这个二进制数包含多少个1?

      这个问题在网上看过多次,几番思考,也没有什么好的办法。采用最基本的办法,逐位判断,是1的统计加1,最后将统计数返回。

      以下是这个思路的VB2008代码,不失一般性,将正整数的范围控制在(1~231-1)

      Private Function GetCount1OfValue(ByVal Value As IntegerAs Integer
        Dim i As Integer, Count As Integer = 0
        For i = 0 To 30
          If (Value And 2 ^ i) = 2 ^ i Then Count += 1
        Next
        Return Count
      End Function

     

      但是近日,在网上发现一个很巧妙的算法,能够快速实现上述的计算功能。代码贴于下方

      Private Function GetCount1OfValue(ByVal Value As IntegerAs Integer  

        Dim Count As Integer = 0

        Do While Value > 0

          Value = Value And (Value - 1)

          Count +=1

        Loop

        Return Count

      End Function

     

      这段代码的精髓就是在这一句:Value = Value And (Value - 1)

      曾经用过类似语句的在我的博客“判断是否是2的N次方——证明x & (x - 1)==0的正确性

      那么这句语句到底起到什么作用呢?看下面的分析

      假设Value=X1X2……Xn-1Xn,其中Xi(1≤i≤n)为1或0

      不妨设Xi是最右边的1,那么Value就可以写成如下的形式

      Value=X1X2……Xi-1Xi0……0,其中(1≤i≤n),Xi后面有n-i个0

      因为Xi=1,所以Value=X1X2……Xi-110……0,其中(1≤i≤n),1后面有n-i个0

      则Value-1=X1X2……Xi-101……1,其中(1≤i≤n),0后面有n-i个1

      则Value And (Value-1)=X1X2……Xi-100……0,其中(1≤i≤n),Xi-1后面有n-i+1个0

      

      因此,Value And (Value-1)的效果把最右边的1变成0

      在上面的代码中,每把最右边的1变成0,则统计数加1,直到所有的1变成0为止。

     

      这两个算法,第一个算法的循环次数是固定的,是31次,无论数值是多少(必须在范围之内)。而第二个算法和Value中的1的个数有关,循环的次数就是1的个数,可见该算法之妙。

     

         

        本文转自万仓一黍博客园博客,原文链接:http://www.cnblogs.com/grenet/archive/2011/06/10/2077228.html,如需转载请自行联系原作者


    展开全文
  • 作为企业的领导者必须时常站在企业之外来看企业的目的,如何去发现客户的需求,如何去创造性的通过产品与服务满足客户的需求,这样才会给你在定位企业要做什么和怎么做的时候更加的正确。l 彼得认为:>由于客户的...
  • 四字节16进制数可转换为四个二进制字节(Bytes),从而使用Api函数来处理成单精度浮点数。 以下用VB代码处理。 VB有专门的API函数CopyMemory能处理2-10进制浮点数转换和10-2进制浮点数转换。 下列代码...
  • VB

    2009-02-06 19:50:00
    1、COM(Component Object Model,组件对象模型),Microsoft公司创建的一种二进制和网络标准,他允许任意两个组件互相通讯,不管他们在什么计算机上运行,不管运行什么操作系统,不管组件用什么语言开发。...
  • 二进制代码重用,通过创建和使用一个对象来实现的,而源代码重用,则通过继承来实现的— Visual Basic 不支持。(源代码重用也可以通过复制和修改源代码来实现,但这种技术没有什么新意,而且存在许多人所共知的...
  • 二进制代码重用,通过创建和使用一个对象来实现的,而源代码重用,则通过继承来实现的— Visual Basic 不支持。(源代码重用也可以通过复制和修改源代码来实现,但这种技术没有什么新意,而且存在许多人所共知的...
  • vb编程给u盘加密

    2019-09-21 17:05:04
    使用u盘加密软件还是使用其他的一些什么方法,那么我现在给大家介绍一个新的方法,就是使用vb编程来给u盘加密。Function ByteToBin(m As Byte) As String ' 将字节型数据转换成八位二进制字符串 Dim c$ c$ = "" ...
  • 位图(bitmap)是二进制的 byte 数组 ,也可以简单理解成一个普通字符串。它将二进制数据存储在 byte 数组中以达到存储数据的作用。图 1.1如何使用位图 ?理清概念在解释什么是位图的时候说过,位图可以理解成一个...
  • vb教材-COM 简 介

    2009-04-11 10:19:41
    组件对象模型COMMicrosoft公司的一种技术基石,在Microsoft公司的MSDN中这样定义的:“COM软件组件互相通信的一种方式,它一种二进制和网络标准,允许任意两个组件互相通信,而不管它们在什么计算机上运行...
  • VB Comwrapper 的实现

    2013-02-17 09:46:59
    A: 简单地说,COM一种跨应用和语言共享二进制代码的方法。   Q: RegAsm与 Regsvr32注册 A: 注册(Registration)创建注册表入口的一个过程,告诉Windows 操作系统COM服务器放在什么位置。  RegAsm & ...
  • 1. 什么是异或运算异或,英文为exclusive OR,缩写成xor。...异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0...
  • 使用VB的MSC控件,实现与单片机之间数据的接收发送,为什么接收回来的数据全0,接收的18个数,用二进制接收,转换成16进制后,显示在文本框text1,请帮忙看一下程序哪里有问题。 还有就是读数据的时候老显示读...
  • 计算机只能处理二进制的数据,所以无论什么数据,在CPU里面处理都一样的,类似101010这样的机器代码,但是让我们直接去写机器代码程序,自然做不到的,所以为了开发方便,把各种数据类型区分开来,按照储存的...
  • vb对xml的操作

    2010-05-28 22:45:00
    什么是XML 扩展标记语言XML一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。...
  • 比如,要写入20000这个数值,经过二进制转化后,使用MsComm1.Output=Chr(0)+Chr(64)+Chr(156)+Chr(70)+指定结束符,可是到达仪器后变成12240。但是按照一样的方式,传输40000时,到达仪器后又是对的。可能是什么原因...
  • VB中操作XML

    千次阅读 2007-03-26 15:49:00
    什么是XML 扩展标记语言XML一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。 XML与...
  • [转]利用VB操作XML数据

    千次阅读 2004-12-02 14:54:00
    出处:http://www.it.com.cn/f/edu/0410/21/37887.htm利用VB操作XML数据天极网2004-10-21 16:12:00 文/crystal 什么是XML 扩展标记语言XML一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以...
  • VB资源编辑器的奥秘

    千次阅读 2009-01-20 14:04:00
    什么是资源资源(Resource)可以视作一个程序携带的除了代码和窗体的额外数据,它像一个EXE的plugin和database,可以包含文本、图片、鼠标、光标、二进制数据等,几乎所有的Windows应用程序中都拥有资源,例如最常见...

空空如也

空空如也

1 2 3 4 5 6
收藏数 101
精华内容 40
关键字:

vb二进制是什么