Здравствуйте!
пишу я так:
#pragma data_seg(".SharedBuff")
char shared_string[2048] = {0};
#pragma data_seg()
#pragma comment(linker, "/SECTION:.SharedBuff,RWS")
делаю билд, а линкер мне
LINK : warning LNK4039: section ".SharedBuff" specified with /SECTION option does not exist
почему так? вроде все правильно пишу.
09.09.04 20:18: Перенесено модератором из 'C/C++' — Павел Кузнецов
Здравствуйте, Pushkin_С, Вы писали:
P_С>пишу я так:
P_С>P_С>#pragma data_seg(".SharedBuff")
P_С>char shared_string[2048] = {0};
P_С>#pragma data_seg()
P_С>#pragma comment(linker, "/SECTION:.SharedBuff,RWS")
P_С>
P_С>делаю билд, а линкер мне
P_С>LINK : warning LNK4039: section ".SharedBuff" specified with /SECTION option does not exist
P_С>почему так? вроде все правильно пишу.
Попробуй уменьшить имя секции до 8 символов...
Я — свихнувшееся сознание Джо.
Здравствуйте, Sergey J. A., Вы писали:
SJA>Здравствуйте, Pushkin_С, Вы писали:
P_С>>пишу я так:
P_С>>P_С>>#pragma data_seg(".SharedBuff")
P_С>>char shared_string[2048] = {0};
P_С>>#pragma data_seg()
P_С>>#pragma comment(linker, "/SECTION:.SharedBuff,RWS")
P_С>>
P_С>>делаю билд, а линкер мне
P_С>>LINK : warning LNK4039: section ".SharedBuff" specified with /SECTION option does not exist
P_С>>почему так? вроде все правильно пишу.
SJA>Попробуй уменьшить имя секции до 8 символов...
спасибо.
уже варнингов линкер не выдает. Но не работает это нормально.
у одном процессе записываю данные. а во втором не вижу изменений
может это из за того что одна прога ЮНИКОИДна а вторая нет?
Здравствуйте, Pushkin_С, Вы писали:
P_С>спасибо.
P_С>уже варнингов линкер не выдает. Но не работает это нормально.
P_С>у одном процессе записываю данные. а во втором не вижу изменений
P_С>
P_С>может это из за того что одна прога ЮНИКОИДна а вторая нет?
Тока что попробовал. Работает вот это:
#pragma data_seg(".Buff")
char buff[2048] = {0};
#pragma data_seg()
#pragma comment(linker, "/SECTION:.Buff,RWS")
Проверь, может у тебя массив не инициализируется ? В таком случае данные попадают в другую секцию — .bss — неинициализированные данные.
А может ты просто не конвертиш строку ? Unicode->ANSI ? Тогда проверь в дебагере, появились ли данные.
Я — свихнувшееся сознание Джо.
Здравствуйте, Sergey J. A., Вы писали:
SJA>Здравствуйте, Pushkin_С, Вы писали:
P_С>>спасибо.
P_С>>уже варнингов линкер не выдает. Но не работает это нормально.
P_С>>у одном процессе записываю данные. а во втором не вижу изменений
P_С>>
P_С>>может это из за того что одна прога ЮНИКОИДна а вторая нет?
SJA>Тока что попробовал. Работает вот это:
SJA>SJA>#pragma data_seg(".Buff")
SJA>char buff[2048] = {0};
SJA>#pragma data_seg()
SJA>#pragma comment(linker, "/SECTION:.Buff,RWS")
SJA>
SJA>Проверь, может у тебя массив не инициализируется ? В таком случае данные попадают в другую секцию — .bss — неинициализированные данные.
SJA>А может ты просто не конвертиш строку ? Unicode->ANSI ? Тогда проверь в дебагере, появились ли данные.
и в одном и в другом процессе делаю инициализацию.
=== 1-й процесс ===
#pragma data_seg(".Buff")
char shared_string[2048] = {0};
#pragma data_seg()
#pragma comment(linker,"/SECTION:.Buff,RS")
================================================
==== 2 -й процесс ================
#pragma data_seg(".Buff")
char shared_string[2048] = {0};
#pragma data_seg()
#pragma comment(linker,"/SECTION:.Buff,RWS")
========================================
Запускаю сначала 1-й процесс — он инициализирует нулями буфер.
Потом запускаю второй процесс и смотрю в дебагире второго что тоже все проинициализировал 0-ми.
Потом во втором процессе записываю данные (в буфере видно — все ОК.)
а вот в буфере 1-го процесса все нули