- 博客(9)
- 收藏
- 关注
原创 Window父进程句柄
应用场景:A进程在程序中通过createprocess启动了B进程,然后调用B进程执行。 当A进程崩溃时,此时B进程并不知道A进程的状态,导致B进程无法退出。解决方案:B进程中启动线程不停判断A进程的状态,当判断到A进程不存在时,B进程自动退出。 判断A进程的状态最好的方法就是调用WaitForSingleObject等待A进程的句柄。问题:B进
2015-01-20 10:35:58 1541 1
原创 X64下VC工程内联汇编
问题: 在x64 Release下出现一个奇怪的bug,代码优化后一个浮点乘法运算出错了,例如1.0 × 1000 居然为 0。分析:反汇编跟踪发现原来是寄存器的值传入有问题,本该传1000.0,结果传的是0.0。所用寄存器是xmm12,为什么会出现这个问题呢,发现是因为前面调用了 libmpeg2的函数修改了xmm寄存器的值。根据windows x64调用约定,函数
2013-12-06 16:13:32 2835
原创 关于宽字符wchar_t(标记下)
Mac下 wchar_t 是32位 占4个字节;Win下wchar_t是16位 占2个字节;mbstowcs 跟系统语言设置相关,在同一台机器上,可以将字符串转为本地编码,然后调用此函数就可以得到该字串的 宽字符 字串
2013-01-08 13:59:36 470
原创 Qt ActiveX控件
ActiveX控件类继承自QaxBindable 注意点:1、 接口函数必须为public slots,且函数返回值不能写HRESULT2、 函数的参数或返回值都改为int,不能写为long由于控件是个播放器,下面就一些效果实现及遇到的问题做个描述1、 播放控制条播放时隐藏,鼠标移动时显现的实现:实现一个控件覆盖显示在另一个控件上,需要先创建底层的控件,再创建上层的控件,
2012-02-01 10:53:11 1453
原创 QDialog的一些描述
今天解决个问题,用到了QDialog,记录下以免下次遇到。程序是一个界面Dialog-Domodal,上面有个进度条显示进度及一个“取消”键,估计下面有个线程一直在执行并传出进度信息。问题是: 在键盘上 按“空格”、“回车”、“ESC”都会关闭窗体空格和回车均响应取消键,而ESC会调用reject()首先先屏蔽空格键的响应,在Event中处理,但没有效果,google一下,发现需要
2011-12-01 16:36:06 1200
原创 Linux下编程一些问题——mutex和类的写法
for(int a=2; a<500; a+=4){ pthread_mutex_lock(&hmutex); ration = rational(a/2, a); cout << pthread_self() << " ThreadA : " << ration << endl; pthread_mutex_unlock(&hmut
2011-11-30 15:57:57 917
原创 单COM组件的嵌套实现方式
单个COM组件的实现有两种实现方式:多重继承和嵌套类多重继承的方式比较好理解,下面说一下嵌套类。我模拟了一下它的实现机制,代码如下:struct IComUnknown { virtual HRESULT __stdcall QueryInterface(const IID& iid,void **ppv)=0; virtual ULONG __stdcall AddRef()
2011-10-26 15:51:38 425
原创 线程中volatile变量
class Thread : public QThread{ Q_OBJECTpublic:Thread(); void setMessage(const QString& message); void stop(); //供
2011-09-09 13:29:08 464
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人