информационная безопасность
без паники и всерьез
 подробно о проекте
Атака на InternetЗа кого нас держат?Страшный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
 Компрометация eMudhra вынудила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
опять глючу. это не обязательно 20.04.02 01:09  Число просмотров: 1065
Автор: 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





Рейтинг@Mail.ru


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