依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 意見:
張貼留言