< Abstract > Имеется С# приложение и С++ кодес, который получает из последнего параметры. Решил сделать через shared-секцию в общей DLL, которую будет импортировать и тот и другой код: Код (Text): // shrd.dll #pragma data_seg("Shared") volatile BOOL g_Once = FALSE; #pragma data_seg() __declspec(allocate("Shared")) volatile BOOL fvars[FVAR_NUM]; #pragma comment(linker, "/SECTION:Shared,RWS") код в C#-приложении... Код (Text): unsafe class ShrdMethods { [DllImport("shrd.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] public static extern int GetVariable(int varnum); ... и обычный C-код с LoadLibrary/GetProcAddress. < Problem > Обычный C-код (как и любое другое non-managed приложение, если податтачить туда руками общую либу) после загрузки shrd.dll видит эту секцию. C#-код, который загружает себе shrd.dll имеет )) ее изолированно, т.е. shared-секция не разделяется. Самое интересное, что на одной системе это так, на другой (не могу представить какие должны быть отличия, возможно разные версии framework-a? Oo) всё прекрасно работает, т.е. как C#, так и C код прекрасно видят общие данные. что не так? если проблема нерешаема, как еще грамотно разделить данные в памяти, чтобы этой проблемы не было? thx.