想在dll中處理 其他程式dbgrideh中的資料,出現問題。然而處理rz系列控制元件并沒有問題。
uj5u.com熱心網友回復:
dll是獨立的記憶體區域,它不能讀取DBGridEh的值。只能通過引數,傳入相關資料。Rz控制元件,是VCL控制元件,它可以共享內在的,因而可以讀取DBGridEh的值。
uj5u.com熱心網友回復:
DBGridEh不也是VCL控制元件嗎,這個問題我之前也遇到過,一直沒有找到解決辦法,上面的兄弟沒看清楚樓主所說的意思,他是說在跨行程讀取其他程式資料里面,同一個程式里面的RZ系列不報錯,DBGrideh表格就例外
uj5u.com熱心網友回復:
dll是獨立的記憶體區域,它不能共享主程式中的記憶體,因而它:(1)不能讀取主程式中的DBGridEh的值。只能通過引數,傳入相關資料。
(2)Dll如果自帶Form和DBGridEh,DBGridEh需要自帶連接控制元件,讀取資料集。
(3)樓主的Rz控制元件,應該是主程式中的VCL控制元件,它可以讀取DBGridEh的值。
uj5u.com熱心網友回復:
嗯就是的,我把use里的dbgrideh注釋掉,一切正常。
加上以后一執行,目標程式就崩潰。我單獨又做了個dll做實驗,里面use了dbgrideh,并且里面只創建了一個dbgrideh物件卻一切正常。。
uj5u.com熱心網友回復:
1.控制元件版本是否一致2.呼叫程序上下加上這個試試。
CoInitialize(nil);
CoUninitialize;
uj5u.com熱心網友回復:
1.控制元件版本是否一致
2.呼叫程序上下加上這個試試。
CoInitialize(nil);
CoUninitialize;
我的目標程式用的dbgrideh版本我并不知道啊,另外activex初始化的代碼加上了貌似也不管用
uj5u.com熱心網友回復:
希望有人給點指導,實在是不懂了。uj5u.com熱心網友回復:
Dll 是獨立記憶體,不要使用DBGridEh,要使用引數傳入資料集的方式才可以。uj5u.com熱心網友回復:
Dll 是獨立記憶體,不要使用DBGridEh,要使用引數傳入資料集的方式才可以。
取得其他程式dbgrideh的資料現在我這里參考網上操作dbgrid的思路一共總結了有兩種方法,一種wh_callwndproc鉤子函式里轉換twincontrol成控制元件型別物件,出錯。另一種是在wm_getmessage的處理函式里面轉換twincontrol但是操作dataset已經成功。接下來實驗一下能不能串換使用。
uj5u.com熱心網友回復:
Dll 是獨立記憶體,不要使用DBGridEh,要使用引數傳入資料集的方式才可以。
然而這并不是關鍵點,關鍵問題在于,第二種方法里面連參考dbgrideh都報錯,光是參考就報錯。而第一種就沒有這個問題,感覺這個涉及到了玄學問題。
uj5u.com熱心網友回復:
Dll 是獨立記憶體,不要使用DBGridEh,要使用引數傳入資料集的方式才可以。
然而這并不是關鍵點,關鍵問題在于,第二種方法里面連參考dbgrideh都報錯,光是參考就報錯。而第一種就沒有這個問題,感覺這個涉及到了玄學問題。
是很奇怪的問題,之前我也在這個問題上傷了不少腦筋,最后不管不問了,等待樓主的研究結果
uj5u.com熱心網友回復:
Dll 是獨立記憶體,不要使用DBGridEh,要使用引數傳入資料集的方式才可以。
然而這并不是關鍵點,關鍵問題在于,第二種方法里面連參考dbgrideh都報錯,光是參考就報錯。而第一種就沒有這個問題,感覺這個涉及到了玄學問題。
是很奇怪的問題,之前我也在這個問題上傷了不少腦筋,最后不管不問了,等待樓主的研究結果
重寫一遍也許就好了。。
uj5u.com熱心網友回復:
Dll 是獨立記憶體,不要使用DBGridEh,要使用引數傳入資料集的方式才可以。
然而這并不是關鍵點,關鍵問題在于,第二種方法里面連參考dbgrideh都報錯,光是參考就報錯。而第一種就沒有這個問題,感覺這個涉及到了玄學問題。
是很奇怪的問題,之前我也在這個問題上傷了不少腦筋,最后不管不問了,等待樓主的研究結果
重寫一遍也許就好了。。
或者DLL改個名字。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/64631.html
標籤:VCL組件開發及應用
