递归火山软件开发平台
标题:
静态变量和乱码的问题
[打印本页]
作者:
qzuser123ss
时间:
2024-5-11 05:06
标题:
静态变量和乱码的问题
准备用火山写一个加密的dll给易语言调用,易语言传入原始文本,火山加密后返回给易语言,使用环境为多线程环境。
下面是火山的dll代码,我尝试过使用全局静态变量和局部静态变量,发现在易语言多线程环境下都有概率发生返回上一次数据的问题,比如现在同时启用50个线程,每个线程执行10次循环来调用这个火山dll,大概率会触发上面讲到的问题。如果去掉了静态且改为局部变量后,大概率会出现一些乱码。现在上述两个问题不知道有没有大佬指点下是哪里的问题。
<火山程序 类型 = "通常" 版本 = 1 />
方法 内部_转码 <公开 静态 类型 = 变整数 注释 = "一个输出方法模板" @输出名 = "decode" @视窗.输出 = 真>
参数 参_原始文本 <类型 = 文本型 "">
{
// 请在其中填入自己的方法内容
变量 字节集 <类型 = 字节集类>
字节集 = 文本到多字节 (参_原始文本, 假)
返回 (字节集.取字节集指针 ())
// 返回 (文本到多字节 ("hello 火山编程 " + 指针到文本 (参_原始文本), 假).取字节集指针 ())
}
复制代码
作者:
363832663
时间:
2024-5-11 06:50
由易语言传递一个缓冲区,然后火山的dll把数据写入缓冲区
<火山程序 类型 = "通常" 版本 = 1 />
方法 内部_转码 <公开 静态 类型 = 变整数 注释 = "一个输出方法模板" 折叠 @输出名 = "decode" @视窗.输出 = 真>
参数 参_原始文本 <类型 = 文本型 "">
参数 参_缓冲区 <类型 = 整数 注释 = "易语言取空白字节集,传取变量数据地址指针,需要确保申请的字节集足够大不会越界">
参数 参_缓冲区返回长度 <类型 = 整数 注释 = "取变量数据地址(整数变量)">
{
变量 字节集 <类型 = 字节集类>
字节集 = 文本到多字节 (参_原始文本, 假)
内存复制 (参_缓冲区, 字节集.取字节集指针 (), 字节集.取字节集长度 ())
内存复制 (参_缓冲区返回长度, 字节集.取字节集长度 (), 4)
// 返回 (字节集.取字节集指针 ())
// 返回 (文本到多字节 ("hello 火山编程 " + 指针到文本 (参_原始文本), 假).取字节集指针 ())
}
作者:
363832663
时间:
2024-5-11 06:56
363832663 发表于 2024-5-11 06:50
由易语言传递一个缓冲区,然后火山的dll把数据写入缓冲区
内存复制 (参_缓冲区返回长度, 字节集.取字节集长度 (), 4) 改成 写指针处值 (参_缓冲区返回长度, 字节集.取字节集长度 ())
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4