递归火山软件开发平台

标题: 关于火山线程的问题 [打印本页]

作者: qiken    时间: 2024-8-20 17:14
标题: 关于火山线程的问题
在火山里面的线程默认的命令 有个 线程启动  线程等待 这个应该怎么调用?

或者精益模块里面有个线程_启动  线程_等待  线程_销毁 怎么调用都出错 如图 应该如何正确调用这个命令呢?

(, 下载次数: 33)

作者: qiken    时间: 2024-8-20 17:15
在易语言里面这样调用没有问题 ,但是在火山里面这个调用说找不到变量 火山只有方法名 但是没有子程序概念 不知道怎么调用啊
作者: Xelloss0618    时间: 2024-8-20 17:31
精易这个线程_启动也没封装好,不能返回线程ID,但启动线程还是没问题的。
要启动的子程序用 取静态方法地址() ,线程函数应该按「启动线程」的「线程模板函数1」来定义,必须静态。

作者: qiken    时间: 2024-8-20 18:09
Xelloss0618 发表于 2024-8-20 17:31
精易这个线程_启动也没封装好,不能返回线程ID,但启动线程还是没问题的。
要启动的子程序用 取静态方法地 ...



但是用静态无法执行线程哦 什么情况? 线程第一个信息框都无法被执行?

(, 下载次数: 32)

作者: qiken    时间: 2024-8-20 18:15
Xelloss0618 发表于 2024-8-20 17:31
精易这个线程_启动也没封装好,不能返回线程ID,但启动线程还是没问题的。
要启动的子程序用 取静态方法地 ...



反复测试有问题,线程句柄可以返回,但是线程里面的命令根本是无法执行,所以就一直卡在等待这里了,什么情况? 我用的是DLL注入第三方EXE应该没有关系吧?


(, 下载次数: 33)

作者: 793359277    时间: 2024-8-20 19:18
本帖最后由 793359277 于 2024-8-20 19:20 编辑
qiken 发表于 2024-8-20 18:15
反复测试有问题,线程句柄可以返回,但是线程里面的命令根本是无法执行,所以就一直卡在等待这里了,什 ...

果然又是DLL, 不可以写在DllMain中, 很多人都像你一样, 在DllMain中写一些被禁止的操作, 然后发帖说BUG

动态链接库最佳做法 - Win32 apps | Microsoft Learn

作者: qiken    时间: 2024-8-20 19:35
793359277 发表于 2024-8-20 19:18
果然又是DLL, 不可以写在DllMain中, 很多人都像你一样, 在DllMain中写一些被禁止的操作, 然后发帖说BUG
...

n那我是DLL线程中调用的,需要用到线程等待,应该怎么写呢? 还是说在DLL里无法用线程命令?
作者: 793359277    时间: 2024-8-20 19:53
qiken 发表于 2024-8-20 19:35
n那我是DLL线程中调用的,需要用到线程等待,应该怎么写呢? 还是说在DLL里无法用线程命令? ...

DllMain是可以启动线程的, 但禁止等待线程. 最佳做法是写在输出函数中, 让EXE主动调用.  当然还有一些另类的方法, 我自己实践出来的,  如: HOOK某个API用作跳板间接执行, 在API被调用时执行你想要的操作.  又或是DLL动态生成一段启动线程调用DLL导出函数的汇编(你想要的操作写在导出函数里), 申请一块内存区域把汇编代码写进去, 然后启动线程去执行
作者: qiken    时间: 2024-8-20 20:00
793359277 发表于 2024-8-20 19:53
DllMain是可以启动线程的, 但禁止等待线程. 最佳做法是写在输出函数中, 让EXE主动调用.  当然还有一些另 ...

好像有点麻烦哦 对了这个DLL启动那里无法访问网络的》?用网页_访问 返回数据是空的  必须在线程里才可以 所以我这个初始化是需要访问网络的 所以只能写在线程里 但是线程又不能等待 那怎么整》  不等待无法拦截主程序EXE啊  堵塞不了
作者: qiken    时间: 2024-8-20 20:01
qiken 发表于 2024-8-20 20:00
好像有点麻烦哦 对了这个DLL启动那里无法访问网络的》?用网页_访问 返回数据是空的  必须在线程里才可以 ...

EXE是第三方别人的 我现在只能调用我的DLL 我用是永久注入的方式。
作者: 793359277    时间: 2024-8-20 20:03
qiken 发表于 2024-8-20 20:00
好像有点麻烦哦 对了这个DLL启动那里无法访问网络的》?用网页_访问 返回数据是空的  必须在线程里才可以 ...

HOOK一个API间接调用吧, 必须是主线程调用的API, 这样可以实现你的要求




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4