
Сообщение от
Jupiter
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Немного строк...(классическая схема)
В софте на С++ открываешь проецируемый в память файл
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| HANDLE hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, L"MySuperNamedMutex");
if (hMutex && hMutex != INVALID_HANDLE_VALUE)
{
DWORD dwWait = WaitForSingleObject(hMutex, 1000);
switch (dwWait)
{
case WAIT_OBJECT_0:
{
HANDLE hMapFile = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, L"NameOfMyMAppedFile:-)");
if (hMapFile != INVALID_HANDLE_VALUE)
{
LPVOID lpMapAddress = MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0);
if (lpMapAddress)
{
byte *buffer = (byte*)lpMapAddress; //ДАННЫЕ ТВОЕГО ПРОЕЦИРУЕМОГО В ПАМЯТЬ ФАЙЛА.... |
|
где L"MySuperNamedMutex" - имя именного мьютекса, которое должно быть общим для софта в С++ и C#,
где L"NameOfMyMAppedFile:-)" - имя самого объекта фала в памяти (не на HDD), которое должно быть общим для софта в С++ и C#