online stats

【程式語言】Data segment share in a DLL

【C++】
依MS網站上的說明,利用#pragma data_seg將需要共用的Variant包在裡面後,
這些變數在DLL Load時會被配置在相同的記憶體,若已配置,則不會再重新配置,
所以不同的程式在使用此Variant時,均是處理同一塊記憶體,藉此達到Variant共用的效果。
需注意的是,這些共用的Variant在宣告時,需給予初始值才能生效;同時不建議
以此方式共享指標或陣列,這可能造成程式中斷。


#pragma data_seg("Shared")
int iSharedVar = 0;
#pragma data_seg()
#pragma comment(linker, "/SECTION:Shared,RWS")

參考資料:
How to specify both shared data and non-shared data in a DLL in Visual C++
範例:
How to share a data segment in a DLL

0 意見:

張貼留言