昨天的多线程弹出错误提示的问题解决了,我很高兴,但是又来了新问题:
main.cpp->GUI class->work class(多线程的那个类)
work class定义如下:
class PcapThread : public QThread
{
Q_OBJECT
public:
PcapThread(char* nicname, char* errors,char *fliter, CALLBACKFUN, QObject *parent);
void stop();
protected:
void run();
signals:
void wrong(QString);
private:
volatile bool stopped;
CALLBACKFUN pcallback;
.......
定义了一个用于GUI class向PcapThread传递参数的初始化函数: PcapThread(char* nicname, char* errors,char *fliter, CALLBACKFUN, QObject *parent);
具体定义如下:
PcapThread::PcapThread(char* nicname, char* error_content,char *filter, CALLBACKFUN callback,QObject *parent)
: nicname(nicname), error_content(error_content),filter(filter),
pcallback(callback),QThread(parent)
{
stopped = false;
}
但是在GUI class里面调用这个PcapThread开传递参数,比如nicname,发现变量nicname的地址没有变化,但是传递给PcapThread后,内容却变了,请问这是什么原因?谢谢~~