类的静态成员函数调用该类的非静态成员函数(Qt使用Halcon生成的线程程序)
在Qt使用Halcon生成的程序时遇到的问题。由于Halcon中的结果是要传到Qt中的,所以将生成的程序都放到了类QtOCR中(该类继承QObject)。
而Halcon线程生成的线程函数是静态的,并且调用了对应的非静态函数,见下图
静态函数是没有this指针的,所以调用的函数不知道是哪个类对象的。所以传入该类指针。
注意凡是使用halcon线程函数的类中,在构造函数中添加如下代码
#if defined(_WIN32) SetSystem("use_window_thread", "true"); #endif
Qt执行时竟然报上段代码的错误。VS打开pro运行没问题。
【一针见血的博客】