首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

timeProc里操作Excel失败解决方案

2013-01-01 
timeProc里操作Excel失败VC6.0在工程里设了一个timeSetEvent定时器,timeProc为非成员函数在回调函数中pPla

timeProc里操作Excel失败
VC6.0
在工程里设了一个timeSetEvent定时器,timeProc为非成员函数
在回调函数中
pPlayer->m_ExlRge.SetItem(_variant_t((long)3), _variant_t((long)1), _variant_t("hello"));

pPlayer为传入的窗口指针,
在回调函数中调用窗口的其它成员函数都可以,而m_ExlRge.SetItem在其它地方调用也没问题,
为什么在回调函数timeProc里操作Excel就会在运行时出错。
[解决办法]
定时器回调中操作Excel比较危险——可能会重入,除非能确保周期足够长或者使用信号/排斥量等
可以在线程中使用定时器 

如果是在回调函数或线程中使用Excel,在创建接口前调用CoInitialize CoInitializeEx之类的初始化COM库

热点排行