易语言字节集参数传递详解

易语言多线程之字节集参数传递

传递文本可以直接传递文本的指针,但是字节集却不能这样,看下面直接传递字节集指针的代码:

.版本 2
.支持库 spec
.支持库 EThread

.程序集 窗口程序集1
.程序集变量 线程句柄, 整数型
.程序集变量 内存长度, 整数型

.子程序 _按钮1_被单击
.局部变量 data, 字节集
.局部变量 ptr, 整数型

data = { 1 }
内存长度 = 取字节集长度 (data)
ptr = 取变量数据地址 (data)

启动线程 (&传递字节集参数, ptr, 线程句柄)
关闭线程句柄 (线程句柄)

.子程序 传递字节集参数
.参数 ptr, 整数型

调试输出 (指针到字节集 (ptr, 内存长度))

很明显结果是错误的,错误的原因涉及到程序的内存的划分,后面会详细讲解。

先看解决这个问题的代码:

.版本 2
.支持库 spec
.支持库 EThread

.程序集 窗口程序集1
.程序集变量 线程句柄, 整数型
.程序集变量 内存长度, 整数型

.子程序 _按钮1_被单击
.局部变量 data, 字节集
.局部变量 ptr, 整数型

data = { 1 }
内存长度 = 取字节集长度 (data)
ptr = 申请内存 (内存长度, 真)
写到内存 (data, ptr, 内存长度)

启动线程 (&传递字节集参数, ptr, 线程句柄)
关闭线程句柄 (线程句柄)

.子程序 传递字节集参数
.参数 ptr, 整数型

调试输出 (指针到字节集 (ptr, 内存长度))
释放内存 (ptr)

首先申请内存,然后把数据写入内存,把内存的指针传入线程。

运行结果:

有时间再发一帖说下程序的内存划分,还有取变量地址和取变量数据地址的区别。

(0)

相关推荐

  • 一步一步跟我学易语言之字节集

    今天我们来学习一下有关字节集的一些知识.如果您能充分掌握我们今天所讲的,那么您将达到编程的一个新的层次. 字节集用作记录一段字节型数据.字节集与字节数组较相似,字节数组的使用方法,譬如用中括号对("[]")加索引数值引用字节成员,也可以被字节集所使用.两者之间最大的不同是字节集可以变长.另外,与文本数据一样,多个字节集之间也可以使用相加命令连接为一个字节集. 下面我们一起来写一个程序,它能够读出并显示指定文件首部的 100 个字节. 我们准备使用一个多行只读编辑框来显示字节数据,为了让

  • 易语言从前或从后寻找指定字节集

    这个功能要用到以下几个命令: 寻找字节集命令 倒找字节集命令 语法:  整数型  寻/倒找字节集 (被搜寻的字节集,欲寻找的字节集,[起始搜寻位置]) 例程 说明 通过"寻找字节集"命令在指定字节集中由前向后寻找符合条件的字节集. 通过"倒找字节集"命令从指定字节集中由后向前寻找指定字节集. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言取字节集数据转换为指定类型的数据

    取字节集数据命令 英文命令:GetBinElement 操作系统支持:Windows.Linux    所属类别:字节集操作 取出字节集中指定位置指定数据类型的数据. 语法:  通用型  取字节集数据 (欲取出其中数据的字节集, 欲取出数据的类型, [起始索引位置]) 例程 说明 取出字节集中指定位置指定数据类型的数据. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言文本型和字节集型数据相互转换的工具

    文本和字节集数据互相转换的代码 .版本 2 .程序集 窗口程序集1 .子程序 文本到字节集, 文本型, 公开 .参数 要转换的文本, 文本型 .局部变量 字节集变量, 字节集 .局部变量 循环次数, 整数型 .局部变量 字节型变量, 字节集 .局部变量 要输出的文本, 文本型 .局部变量 文本数据, 文本型 文本数据 = 要转换的文本 字节集变量 = 到字节集 (文本数据) .计次循环首 (取字节集长度 (字节集变量), 循环次数) 字节型变量 = 取字节集中间 (字节集变量, 循环次数, 1)

  • 详解易语言字节集动态加密

    原理很简单: 字节集1(n位随机字节集) 字节集2(m位随机字节集) 被加密字节集=字节集1+被加密字节集+字节集2 被加密字后的字节集=加密(被加密字节集,密码) 解密后的字节集=解密(被解密字节集,密码) 解密后的字节集=字节集1+被加密字节集+字节集2 解密后的字节集=取字节集中间(解密后的字节集,n+1,取字节集长度 (解密后的字节集) -m-n) .版本 2 .支持库 dp1 .子程序 加密_加密or解密, 字节集 .参数 字节集数据, 字节集 .参数 加密or解密, 整数型, , 1

  • 易语言将指定数据类型转换为字节集类型

    到字节集命令 英文命令:ToBin 操作系统支持:Windows.Linux    所属类别:字节集操作 将指定数据转换为字节集后返回转换结果. 语法:  字节集  到字节集 (欲转换为字节集的数据) 例程 说明 通过"到字节集命令"将其他数据类型转换为字节集类型. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言dll文件传递字节集参数解析

    DLL文件是不允许参数为字节集,为了能够传递字节集数据 解决办法是利用指针进行一步转换,传递指针,然后转换为字节集. 用到命令为三个. 一个是 取变量数据地址 () 一个是 取字节集长度() 一个是 指针到字节集(,) 应用 .局部变量 指针, 整数型 .局部变量 size, 整数型 .局部变量 字节集, 字节集 '注释:先吧字节集转化为指针 字节集 = 读入文件 ("1.exe") 指针 = 取变量数据地址 (字节集) size = 取字节集长度 (字节集) '注释:然后把指针转换成

  • 易语言取字节集长度,获取图片框中图片数据的大小

    取字节集长度命令 英文命令:BinLen 操作系统支持:Windows.Linux    所属类别:字节集操作 取字节集型数据的长度. 语法:  整数型  取字节集长度 (字节集数据) 例程 说明 通过"取字节集长度"命令获取图片框中图片数据的大小. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言字节集参数传递详解

    易语言多线程之字节集参数传递 传递文本可以直接传递文本的指针,但是字节集却不能这样,看下面直接传递字节集指针的代码: .版本 2 .支持库 spec .支持库 EThread .程序集 窗口程序集1 .程序集变量 线程句柄, 整数型 .程序集变量 内存长度, 整数型 .子程序 _按钮1_被单击 .局部变量 data, 字节集 .局部变量 ptr, 整数型 data = { 1 } 内存长度 = 取字节集长度 (data) ptr = 取变量数据地址 (data) 启动线程 (&传递字节集参数,

  • 易语言整数型参数传递详解

    易语言多线程之整数型参数传递 易语言启动线程的时候第二个参数是传递给线程的参数,类型是整数型的,当然传递整数型参数会非常的简单,直接传递就可以了. .版本 2 .支持库 EThread .程序集 窗口程序集1 .程序集变量 线程句柄, 整数型 .子程序 _按钮1_被单击 .局部变量 ptr, 整数型 ptr = 100 启动线程 (&子程序1, ptr, 线程句柄)关闭线程句柄 (线程句柄) 关闭线程句柄 (线程句柄) .子程序 子程序1 .参数 ptr, 整数型 信息框 (到文本 (ptr),

  • 易语言子程序知识点详解

    将程序分割成较小的逻辑组件就可以简化程序设计任务,这些逻辑组件被称为子程序. 子程序可用于压缩重复任务或共享任务,例如,压缩频繁的计算处理等等. 用子程序编程有两大好处: 子程序可使程序划分成离散的逻辑组件,每个组件都比无子程序的整个程序容易调试及理解: 一个应用程序中的子程序,往往不必修改或只需稍作改动,便可以成为另一个程序的子程序. 每次调用子程序时,子程序中的所有语句都将被从第一条开始顺序执行,当执行到子程序尾部或者遇到"返回"命令时即返回到调用此子程序语句的下一条语句处. 子程

  • 易语言位取反操作详解

    易语言位取反实例讲解,这个是位运算,希望能帮上大家. 1.易语言新建一个windows窗口 点击进入代码编辑区 具体可以看看如何用易语言编写自己第一个程序? 2.我们输入位取反() 这个格式和中文差不多 3.我们展开这个函数看看 只有一个参数 4.这个参数是一个数值 是整数型 我们输入3 5.我们使用调试输出这个函数 具体可以看看易语言调试输出函数实例详解 我们输入调试输出(位取反 (3)) 6.运行结果为-4 它是把3用位表示然后取反,再换算成的数值

  • 易语言动态链接库制作详解

    一.关于易语言 DLL 从易语言 3.6 版开始,已经能够支持对DLL动态链接库的开发, 编译出的DLL是标准的DLL,和其他编程语言生成的标准 DLL 的调用方法相同.易语言编写出的DLL,在非独立编译exe时只需要DLL文件随应用程序一起发行,而独立编译 exe 时无需将 DLL 文件随应用程序一起发行. 二.新建易语言DLL程序 新建一个易语言程序,然后选择 "windows动态链接库"图标,易语言就会自动创建 出编写态连接库的代码区(程序集) 创建完毕就可以在代码区里编写DLL

  • 易语言取时间间隔方法详解

    易语言取时间间隔,时间操作,教给大家. 1.打开易语言新建一个windows程序进入下图界面 2.输入 取时间间隔 3.展开发现这个函数有3个参数 4.第一.二个参数 很简单就是时间我们分别输入 到时间 ("1972年1月15日11时30分15秒") 到时间 ("1973年1月15日11时30分15秒") 5.第三个参数我们输入 1就是取间隔年份的意思 6.我们输入 调试输出 (取时间间隔 (到时间 ("1972年1月15日11时30分15秒")

  • 易语言静态局部变量详解

    易语言静态局部变量,是指所在子程序才能调用的静态变量,它最大的特点是子程序退出后,仍然保存上次调用时的值.比如程序执行下象棋,上次还没下完的棋盘还保留着. 首先在程序窗口添加编辑框.画板和按钮,双击按钮进入窗口程序集. "Ctrl+L"新建两个局部变量,将变量分别命名为变1和变2,均为短整数型,变1设置成非静态变量,变2设置成静态变量.区别就是选择静态打勾,非静态不打勾.最后输入内容: 变1 = 变1 + 到数值 (编辑框1.内容) 变2 = 变2 + 到数值 (编辑框1.内容) 画板

  • 易语言二进制知识点详解

    易语言二进制,这个是数值转换操作,我给大家演示,这个比较简单的. 1.打开易语言新建一个windows程序进入下图界面 2.我们输入二进制 () 这个命令 3.我们展开这个命令 发现这个命令只有一个参数 4.我们输入这个参数: "10" 5.我们输入: 调试输出(二进制 ("10")) 6.运行结果: 2 就是把二进制转换成10进制,很简单 以上就是关于易语言二级制的全部知识点内容,感谢大家的阅读和对我们的支持.

  • Java的数据类型和参数传递(详解)

    Java提供的数据类型主要分为两大类:基本数据类型和引用数据类型. Java中的基本数据类型 名称 大小 取值范围 byte型 (字节) 8bit -128-127 (-2^7到2^7-1) short型 (短整型) 16bit -2^15到2^15-1 int型 (整形) 32bit -2^31到2^31-1 long型 (长整型) 64bit -2^63到2^63-1 float型 (单精度浮点型) 32bit double型 (双精度浮点型) 64bit char型 (字符型) 16bit

  • 基于react组件之间的参数传递(详解)

    1.父组件向子组件传递参数 class Child extends Component { componentDidMount(){ let name = this.props.default; console,log(name); } render(){ const { default} = this.props; return ( <Input /> ) } } import React, { Component } from 'react'; import Child from './C

随机推荐