DLL命令表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
.版本 2
.DLL命令 创建线程_, 整数型, "kernel32", "CreateThread", , CreateThread建立新的线索
.参数 lpThreadAttributes, 整数型, , 0
.参数 dwStackSize, 整数型, , 0
.参数 lpStartAddress, 子程序指针
.参数 lpParameter, 整数型
.参数 dwCreationFlags, 整数型, , 0
.参数 lpThreadId, 整数型, , 线程ID
.DLL命令 _创建许可证, , "kernel32", "InitializeCriticalSection", , 创建许可证
.参数 lpCriticalSection, 多线程许可证, 传址
.DLL命令 _删除许可证, , "kernel32", "DeleteCriticalSection", , 删除许可证
.参数 lpCriticalSection, 多线程许可证, 传址
.DLL命令 _进入许可区, , "kernel32", "EnterCriticalSection", , 进入许可区
.参数 lpCriticalSection, 多线程许可证, 传址
.DLL命令 _退出许可区, , "kernel32", "LeaveCriticalSection", , 退出许可区
.参数 lpCriticalSection, 多线程许可证, 传址
.DLL命令 线程_挂起, 整数型, "kernel32", "SuspendThread"
.参数 hThread, 整数型
.DLL命令 线程_恢复, 整数型, "kernel32", "ResumeThread"
.参数 hThread, 整数型
|
自定义数据类型表
1
2
3
4
5
6
7
8
|
.版本 2
.数据类型 多线程许可证, 公开
.成员 DebugInfo, 整数型
.成员 LockCount, 整数型
.成员 RecursionCount, 整数型
.成员 OwningThread, 整数型
.成员 LockSemaphore, 整数型
.成员 SpinCount, 整数型
|
酷狗kgtemp转MP3的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
.版本 2
.支持库 iext
.支持库 spec
.程序集 窗口程序集_启动窗口
.程序集变量 许可证, 多线程许可证
.程序集变量 线程数, 整数型
.程序集变量 handle, 整数型, , "0"
.程序集变量 是否暂停, 逻辑型
.程序集变量 是否停止, 逻辑型
.子程序 __启动窗口_创建完毕
路径编辑框.内容 = 取运行目录 () + “\mp3\”
_创建许可证 (许可证)
输出调试文本 (许可证.DebugInfo)
.子程序 _按钮生成_被单击
.局部变量 初始目录, 文本型
.局部变量 文件, 文本型
.局部变量 索引, 整数型
.局部变量 数值1, 文本型
.局部变量 i, 整数型
按钮开始.禁止 = 假
超级列表框1.表项 = { }
i = 0
初始目录 = 取运行目录 () + “\”
文件 = 寻找文件 (初始目录 + “*.kgtemp”, )
.循环判断首 ()
.如果真 (文件是否存在 (初始目录 + 文件))
i = i + 1
索引 = 超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (索引, 0, 到文本 (i))
超级列表框1.置标题 (索引, 1, 初始目录 + 文件)
超级列表框1.置标题 (索引, 2, “待转”)
.如果真结束
文件 = 寻找文件 (, )
.循环判断尾 (文件 ≠ “”)
.子程序 _按钮开始_被单击
.如果真 (文件是否存在 (路径编辑框.内容) = 假)
创建目录 (路径编辑框.内容)
.如果真结束
是否停止 = 假
按钮开始.禁止 = 真
按钮生成.禁止 = 真
按钮停止.禁止 = 假
按钮暂停.禁止 = 假
多线程启动 ()
按钮生成.禁止 = 假
按钮停止.禁止 = 真
按钮暂停.禁止 = 真
按钮开始.禁止 = 假
.子程序 单线程转换
.参数 表项, 整数型
.局部变量 文件路径, 文本型
.局部变量 文件名, 文本型
.局部变量 mp3, 字节集
文件路径 = 超级列表框1.取标题 (表项, 1)
文件名 = 取文本右边 (文件路径, 取文本长度 (文件路径) - 倒找文本 (文件路径, “\”, , 假))
mp3 = kgtemp转MP3 (文件路径)
.如果 (mp3 ≠ { })
.如果 (写到文件 (路径编辑框.内容 + 文件名 + “.mp3”, mp3))
超级列表框1.置标题 (表项, 2, “完成”)
.否则
超级列表框1.置标题 (表项, 2, “失败”)
.如果结束
.否则
超级列表框1.置标题 (表项, 2, “失败”)
.如果结束
超级列表框1.保证显示 (表项)
_进入许可区 (许可证)
线程数 = 线程数 - 1
_退出许可区 (许可证)
.子程序 多线程启动
.局部变量 数量, 整数型
.局部变量 i, 整数型
数量 = 超级列表框1.取表项数 ()
重定义数组 (handle, 假, 数量) ' 防止数组越界
.计次循环首 (数量, i)
.如果真 (是否停止)
跳出循环 ()
.如果真结束
.判断循环首 (是否暂停)
延迟 (200) ' 如果单击了暂停按钮,程序就停在此处无限循环,直到单击恢复。
.判断循环尾 ()
创建线程_ (0, 0, &单线程转换, i - 1, 0, handle [i])
超级列表框1.置标题 (i - 1, 2, “转换中”)
_进入许可区 (许可证)
线程数 = 线程数 + 1 ' 循环一次就让线程数增加1
_退出许可区 (许可证)
.判断循环首 (线程数 = 到整数 (编辑框线程数.内容))
.如果真 (是否停止)
跳出循环 ()
.如果真结束
延迟 (100) ' 延迟的目的是防止线程数超过设定数目。
.判断循环尾 ()
.计次循环尾 ()
.子程序 _按钮暂停_被单击
.局部变量 cout, 整数型
.局部变量 i, 整数型
cout = 超级列表框1.取表项数 ()
.判断开始 (按钮暂停.标题 = “暂停”)
是否暂停 = 真
.计次循环首 (cout, i)
线程_挂起 (handle [i])
.计次循环尾 ()
按钮暂停.标题 = “恢复”
.默认
按钮暂停.标题 = “恢复”
是否暂停 = 假
.计次循环首 (cout, i)
线程_恢复 (handle [i])
.计次循环尾 ()
按钮暂停.标题 = “暂停”
.判断结束
.子程序 _按钮停止_被单击
是否停止 = 真
按钮生成.禁止 = 真
.子程序 kgtemp转MP3, 字节集
.参数 文件路径, 文本型
.局部变量 key, 整数型, , "4"
.局部变量 文件号, 整数型
.局部变量 临时字节集文件, 字节集
.局部变量 临时字节集指针, 整数型
.局部变量 字节集长度, 整数型
.局部变量 计数, 整数型
.局部变量 i, 整数型
.局部变量 结果, 整数型
.局部变量 输出结果, 字节集
.局部变量 时间, 整数型
key [1] = 172
key [2] = 236
key [3] = 223
key [4] = 87
文件号 = 打开文件 (文件路径, , )
临时字节集文件 = 读入字节集 (文件号, 取文件长度 (文件号))
关闭文件 (文件号)
临时字节集文件 = 取字节集右边 (临时字节集文件, 取字节集长度 (临时字节集文件) - 1024)
临时字节集指针 = 取变量数据地址 (临时字节集文件)
字节集长度 = 取字节集长度 (临时字节集文件)
时间 = 取启动时间 ()
.计次循环首 (字节集长度, 计数)
i = 计数 % 4
.如果真 (i = 0)
i = 4
.如果真结束
结果 = 位异或 (取低位 (临时字节集文件 [计数]), 取低位 (key [i]))
结果 = 位或 (左移 (位异或 (取高位 (临时字节集文件 [计数]), 取高位 (key [i]), 结果), 4), 结果)
写到内存 (取字节集左边 (到字节集 (结果), 1), 临时字节集指针 + 计数 - 1, 1)
.计次循环尾 ()
输出调试文本 (取启动时间 () - 时间)
返回 (临时字节集文件)
.子程序 MP3转kgtemp, 字节集
.参数 文件路径, 文本型
.局部变量 key, 整数型, , "4"
.局部变量 文件号, 整数型
.局部变量 临时字节集文件, 字节集
.局部变量 临时字节集指针, 整数型
.局部变量 字节集长度, 整数型
.局部变量 计数, 整数型
.局部变量 i, 整数型
.局部变量 结果, 整数型
.局部变量 输出结果, 字节集
.局部变量 时间, 整数型
key [1] = 172
key [2] = 236
key [3] = 223
key [4] = 87
文件号 = 打开文件 (文件路径, , )
临时字节集文件 = 读入字节集 (文件号, 取文件长度 (文件号))
关闭文件 (文件号)
临时字节集指针 = 取变量数据地址 (临时字节集文件)
字节集长度 = 取字节集长度 (临时字节集文件)
时间 = 取启动时间 ()
.计次循环首 (字节集长度, 计数)
i = 计数 % 4
.如果真 (i = 0)
i = 4
.如果真结束
结果 = 位异或 (取高位 (临时字节集文件 [计数]), 取低位 (临时字节集文件 [计数]), 取高位 (key [i]))
结果 = 位或 (左移 (结果, 4), 位异或 (取低位 (临时字节集文件 [计数]), 取低位 (key [i])))
写到内存 (取字节集左边 (到字节集 (结果), 1), 临时字节集指针 + 计数 - 1, 1)
.计次循环尾 ()
输出调试文本 (取启动时间 () - 时间)
返回 (#head + 临时字节集文件)
.子程序 取高位, 整数型
.参数 待取整数, 整数型
返回 (右移 (待取整数, 4))
.子程序 取低位, 整数型
.参数 待取整数, 整数型
返回 (位与 (待取整数, 15))
.子程序 __启动窗口_将被销毁
_删除许可证 (许可证)
|
运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接