Форум программистов, компьютерный форум CyberForum.ru

Работа с адресными пространствами - C++

Восстановить пароль Регистрация
 
Vadym
Сообщений: n/a
19.08.2011, 15:07     Работа с адресными пространствами #1
Мене надо передать из одной программы в другую символьный масив. Для этого я посылаю специальное сообщение, один из параметров - адрес символьного массива. Но возникает несоответствие из адресными пространствами. Можно использовать dll, но мне хочеться обойтись без лишних файлов. Возможно ли єто?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2011, 15:07     Работа с адресными пространствами
Посмотрите здесь:

Проясните ситуацию с пространствами имен C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Messir
Сообщений: n/a
21.08.2011, 10:58     Работа с адресными пространствами #2
VirtualAllocEx, Read/WriteProcessMemory
np_msn
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 46
22.08.2011, 09:30     Работа с адресными пространствами #3
Привет.
Можно работать с разделяемой памятью.
Вот небольшой пример для Windows:
Файл s.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//-------------------------------------------------------------------
#include <windows.h>
#include <conio.h>
#include <stdio.h>
//-------------------------------------------------------------------
int main()
{
    HANDLE handle;
    char str[8 * 1024], *sptr;
 
    strcpy(str, 'Привет, Мир!');
    // создаем Shared Memory
    handle = CreateFileMapping((HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0,
                            sizeof(str), 'Test');
    // получаем указатель на этот кусок памяти
    sptr = (char*) MapViewOfFile(handle, FILE_MAP_ALL_ACCESS, 0, 0, 0);                                // Map entire file.
    strcpy(sptr, str);
    // ждем...
    getch();
    CloseHandle(handle);
    return 0;
}
Файл c.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//-------------------------------------------------------------------
#include <windows.h>
#include <stdio.h>
//-------------------------------------------------------------------
int main()
{
    char* sptr;
    HANDLE handle;
 
    // получаем хэндл на Shared Memory
    handle = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, 'Test');
    // получаем указатель
    sptr = (char*) MapViewOfFile(handle, FILE_MAP_ALL_ACCESS, 0, 0, 0);                                // Map entire file.
 
    printf('%s', sptr);
    CloseHandle(handle);
 
    return 0;
}
Удачи.
Yandex
Объявления
22.08.2011, 09:30     Работа с адресными пространствами
Ответ Создать тему
Опции темы

Текущее время: 20:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru