在98下的DLL中到底能不能建立线程啊 (50分)

  • 主题发起人 主题发起人 dyzgd
  • 开始时间 开始时间
D

dyzgd

Unregistered / Unconfirmed
GUEST, unregistred user!
我在XP下编了一个DLL,里面要创建一个线程,在XP下好好的,但在98下,竟连TTHREAD。CREATE这个过程 没有运行到,不知是不是98下的DLL不支持线程啊,请大家帮帮忙,
还有一个怪问题,就是在DLL中的全局变量,不管在哪个函数中变值,只有在哪个函数中有用,而在其他函数中调用去始总是0,但在XP下也无这个问题,只有在98下才出现,真是怪怪怪,怪是年年有,就是今天多。。
 
怎么没人回答我这个问题啊,是都不懂还是分数少啊,要是分少我出到400分,
 
在动态库中当然能够创建线程,主要是看你怎么创建了。
 
在98下重新编译
 
1、98也支持多线程,但是没有2000、XP好。我的理解是这样的,98支持多线程,但是效率
可能没有2000、XP好,在线程过多的情况下有可能出现问题。你是说还没有运行到TTHREAD.CREATE
就出错了是不是?那就应该多检查一下代码,很可能代码中有问题。
2、“DLL中的全局变量,不管在哪个函数中变值,只有在哪个函数中有用,而在其他函数中调用去始总是0”?
不太明白你的意思,如果是那样,还能叫全局变量吗?全局变量就是共享的啊,只是在不同的进程中调用这个
DLL时,它们的全局变量是不同的。
 
to :远帆
1、我这可以create(true),但唤醒-挂起-唤醒就出错啦,我是在hook dll中只开了一个线
程,不存在线程过多的问题。
2、我在hook DLL中的定义了一个string变量,但在线程中(create(false))访问时第一次正确,第二次就不
对啦。
我用的是正版OEM win98 se,真是让人搞不懂。
 
没有问题,不过98下的DLL中的全局线程是所有调用他的进程公用的,(一本书说的)
我一直在2000下做东西,没试过,2000下是没有任何问题
 
98当然支持多线程,《Delphi开发人员指南》上有例子。
 
后退
顶部