我有一個Qt應用程序,它使用全局變量作爲指向某些單例服務對象的指針(我知道這不是最好的解決方案)。現在我想讓我的應用程序可以使用Qt插件進行擴展。我可以在插件中使用主程序的全局變量嗎?還是Qt插件有一個單獨的地址空間?在Qt插件中使用主程序的全局變量
1
A
回答
1
您的插件(.so或.DLL)將運行在相同的地址空間中。在插件體系結構中需要一些方法來將主要變量的地址提供給插件。
1
方便(但不是很乾淨)的方法之一是在您的應用程序中使用屬性。 在主要成分,你推一個指向這個全球到你的「主應用程序」:
QObject* pMyobject = qApp->property("StringProperty").value<QObject*>();
0
分配您的變量:
qApp->setProperty("StringProperty",qVariantFromValue(qobject_cast<QObject*>(this)));
在你的插件,你可以用類似的東西檢索內存空間到一個QSharedMemory對象。當所有連接的線程和進程完成時,QSharedMemory將釋放。如果要爲所有進程使用分離的內存,則應使用進程ID作爲QSharedMemory對象的名稱。
相關問題
- 1. 在主機軟件的dll和全局變量中定義的全局變量
- 2. jQuery插件中的全局變量
- 3. 在程序開發變量的全局
- 4. 全局變量MVC應用程序
- 5. 應用程序全局變量
- 6. 使用全局變量的Flex組件
- 7. 從線程函數修改全局變量並仍然運行主線程以使用全局變量
- 8. 在requirejs中使用全局變量
- 9. 在cakephp中使用全局變量
- 10. 在C++中使用全局變量
- 11. 在backbone.js中使用全局變量
- 12. 在JavaScript中使用全局變量
- 13. 在cibonfire中使用全局變量codeigniter
- 14. 在reudcer類中使用全局變量
- 15. 在javascript中使用全局變量
- 16. Qt插件使用主機應用程序的類
- 17. 使用全局變量編寫程序更安全嗎?
- 18. jQuery插件中的全局或局部變量
- 19. 在使用DLL的應用程序中的System.pas中的全局變量
- 20. GUI Qt全局變量錯誤
- 21. 全局變量,子程序變量Perl中的問題
- 22. Android應用程序中的全局變量不存在
- 23. WordPress的 - 使變量可用於所有主題文件(沒有全局變量)
- 24. 在Python中的線程中使用全局變量
- 25. 使用應用程序類的全局變量
- 26. 使用全局變量的WPF應用程序
- 27. JavaScript使用全局變量
- 28. 當使用全局變量
- 29. 使用全局變量
- 30. codeigniter,使用全局變量
其實我有這樣的想法。謝謝! – McNumber 2011-04-18 06:52:06