информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
перепутал. там data_seg 19.04.02 12:03  Число просмотров: 1006
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
<programming>
[C++] Можно ли засунуть константы в блок кода, по месту объявления? 18.04.02 04:34  
Автор: Zef <Alloo Zef> Статус: Elderman
Отредактировано 18.04.02 11:55  Количество правок: 1
<"чистая" ссылка>
Мне нужно сделать так, чтобы все инициализированные локальные переменные в функции находились в теле кода, в том месте , где я их объявил. Можно ли заставить VC6.0 сотворить такое?

Дело в том, что кусок кода "разкручивается" в память, как данные, затем запускается на выполнение.
Код должен быть полностью перемещаемым, независимым от адресов размещения, а в нем должна содержаться куча текстовых констант. А VC все константы размещает в сегменте данных.

Конечно, такие вещи принято писать на АСМе, но там необходимо передавать ф-циям АПИ громоздкие структуры и я вконец запутался с адресацией полей. Да и кусок кода не малый.
#pragma comment (linker,"-merge:.rdata=.text" ) 19.04.02 21:44  
Автор: LiNX Статус: Незарегистрированный пользователь
<"чистая" ссылка>
только ещё /section:.text,RWE 20.04.02 00:15  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
опять глючу. это не обязательно 20.04.02 01:09  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
[C++] Можно ли засунуть константы в блок кода, по месту объявления? 18.04.02 23:24  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
засунуть в секцию кода можно (#pragma code_seg(".text"))

а вот сделать перемещаемыми - это вряд ли
[C++] И близко не лежало! 19.04.02 05:59  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
#pragma code_seg( ["section-name"[,"section-class"] ] )

Specifies a code section where functions are to be allocated. The code_seg pragma specifies the default section for functions. You can, optionally, specify the class as well as the section name. Using #pragma code_seg without a section-name string resets allocation to whatever it was when compilation began.

Я пока делаю так:
__asm
{
call Next
Next:
pop eax //получили счктчик команд
add eax,9 //сдвинулись на "голову" блока данных
mov Sig,eax //указатель на структуру данных
jmp ex //перепрыгиваем через данные
#include "nop.asm" //нопами забито место под данные
ex:
}

Неудобно - нужно при отладке каждый раз данные подгружать на место "нопов"
перепутал. там data_seg 19.04.02 12:03  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach