在工作者執行緒中操作Excel要初始化OLE

2021-06-21 10:57:41 字數 718 閱讀 8982

執行緒中通過ole呼叫excel出現錯誤

跳出 dbgheap.c 第268行

pvblk = _heap_alloc_dbg(nsize, nblockuse, szfilename, nline);

請問這是什麼情況?

------解決方案--------------------

我也弄這個 期待答案 愁死我了 

------解決方案--------------------

------解決方案--------------------

樓主你應該貼前面幾個堆疊的**,好分析點。

你先試下把所有與excel相關的**都放在這個執行緒裡,並保證只開了乙個執行緒。 

------解決方案--------------------

//

1) 每個執行緒必須先::coinitialize(null);,退出時必須::uncoinitialize(null);,

2) pdlg->m_pxloper,即執行緒使用m_pxl內excel物件,必須遵守com/com+規範,簡單說,物件介面指標必須遵守乙個規範:計數增一,退出時計數減一

3)多執行緒共享介面指標,還有很多要注意的地方,比如套間等,不能象c/c++程式自己設計的物件指標那麼簡單對待

後來在別的**上查詢到:

hresult hr = ::coinitializeex( null, coinit_multithreaded );

MFC工作者執行緒

工作者執行緒 1.在標頭檔案中新增uint threadfunc lpvoid lpparam 注意應在類的外部 2.新增protected型變數 cwinthread pthread 3.新增執行緒處理函式 uint threadfunc lpvoid lpparam return 0 4.開啟執...

多執行緒程式設計之建立工作者執行緒

由於之前專案用到了多執行緒,但每怎麼看msdn的文件,今天覆習便仔細看了下,全文翻譯如下 工作者執行緒 工作者執行緒通常用來在後台執行一些使用者不需要等待的任務,如一些比較耗時的數學計算 我專案中耗時的數學計算便是相機的標定,需要對乙個比較大的矩陣進行svd分解及其他運算 和後台列印等。建立乙個工作...

執行緒池如何管理工作者執行緒

1.執行緒池的queueuserworkitem方法和timer類總把工作項放入全域性佇列中 2.工作者執行緒利用先進先出的原則從全域性佇列中取出工作項放入自己的本地佇列中,並處理他們 3.因為多個工作者執行緒要從同時從全域性佇列中取工作項,所以會有乙個執行緒同步鎖,保證所有工作者執行緒取出不同的工...