C语言读取易语言的字节集,易语言字节集参数传递详解
易語言多線程之字節集參數傳遞
傳遞文本可以直接傳遞文本的指針,但是字節集卻不能這樣,看下面直接傳遞字節集指針的代碼:
.版本 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)
首先申請內存,然后把數據寫入內存,把內存的指針傳入線程。
運行結果:
有時間再發一帖說下程序的內存劃分,還有取變量地址和取變量數據地址的區別。
總結
以上是生活随笔為你收集整理的C语言读取易语言的字节集,易语言字节集参数传递详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【线性代数】20 基变换,基变换公式,坐
- 下一篇: EndNote X8使用总结