Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Написание кода для 32- и 64-битных платформ 
:(
    Опции темы
icecrashldr
Дата 13.9.2010, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 5.7.2010

Репутация: нет
Всего: нет



Цитата

Если писать без ошибок строго следуя стандарту, то проблем с "реализацией" никаких не будет. И не надо ничего лишнего подключать - максимум ifdef/else/endif.

Ваш опыт с 32 и 64 мне понятен. точнее он просто отсутствует.
И имелась ввиду идей, а пример для конкретизации .



rudvil, 
Не "микшируйте" концепции двух разных языком программирования. 
PM MAIL WWW   Вверх
bsa
Дата 13.9.2010, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(icecrashldr @  13.9.2010,  12:41 Найти цитируемый пост)
Ваш опыт с 32 и 64 мне понятен. точнее он просто отсутствует.

У меня куча проектов, которые компилируются и работают под Linux x86, Linux x86_64 и Win32. Отличия только в нескольких файлах (да и то, деление на Linux и Windows). И все работает! Я что-то не так делаю?
Кстати, я НИКОГДА не присваиваю указатели переменным типа (unsigned) (long) int.

Цитата(Muerto @  13.9.2010,  13:01 Найти цитируемый пост)
но собственно в чем вообще преимущество интерфейсов?

А ты попробуй создать проект, состоящий из двух или более cpp файлов, в которых используется класс MyClass, интерфейс и реализация которого находятся в одном из этих cpp. Когда сделаешь, расскажешь, что у тебя получилось.
PM   Вверх
kemiisto
Дата 13.9.2010, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 2
Всего: 160



Цитата(baldina @  13.9.2010,  16:11 Найти цитируемый пост)
напрямую связано с понятием "раздельная компиляция"

Ай-ай-ай. Как плохо мы разбираемся в вопросе. В С/С++/FORTRAN нет раздельной компиляции (separate compilation), только независимая (independent compilation). smile 

К прочтению.

Цитата
An important characteristic of independent compilation is that the interfaces between the separately compiled units are not checked for consistency.

Что доставляет. Хлопот. smile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
icecrashldr
Дата 13.9.2010, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 5.7.2010

Репутация: нет
Всего: нет



bsa, 
Ну например, из недавнего писал трасировщик под винь.

WaitForDebugEvent
ReadProcessMemory
WriteProcessMemory
GetThreadContext/SetThreadContext

"Трасирощик" организует цикл отладчика, и логирует происхождения exceptions, c дампом опкодов инструкций(надо еще дизассм прикрутить).
+ Некоторое апи.

Вот тут и посмотрим как будет просто сделать для 32 + 64 битов.
PM MAIL WWW   Вверх
bsa
Дата 13.9.2010, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(icecrashldr @  13.9.2010,  20:11 Найти цитируемый пост)
Вот тут и посмотрим как будет просто сделать для 32 + 64 битов. 

Начнем с того, что я стараюсь избегать данной ОС. Именно потому, что в самом начале ее разработки была допущена куча ошибок в архитектуре, из-за которых все нынешние беды и лезут.
Если бы мне пришлось с этим связываться, я бы сделал универсальный интерфейс (абстрактный класс) и пару его реализаций (наследников), что собственно у меня в моих проектах и имеется:
interface.h
win_impl.h / win_impl.cpp
x11_impl.h / x11_impl.cpp

В конфигурацию сборки под Windows включен win_impl.cpp, в конфигурацию под Linux включен x11_impl.cpp. В win_impl.h и x11_impl.h есть #ifdef/#endif, которые защищают от сборки на "неправильной" платформе. Так же в каждом из них есть определение типа 
Код
typedef X11Impl Driver;
Дальше по коду я просто использую класс Driver не заморачиваясь на то, чем он на самом деле является (более того, это используется только в одном модуле, остальные знают только о Interface - предке Driver).
PM   Вверх
baldina
Дата 14.9.2010, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



kemiisto, что за троллизм? присылаете  ссылку с какого-то забора...
я использую терминологию, соответствующую русскоязычной тех. лит., в т.ч. переводной. например тут
PM MAIL   Вверх
kemiisto
Дата 14.9.2010, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 2
Всего: 160



"Им будет не просто, тем, кто полагается на истину авторитета, вместо того, чтобы полагаться на авторитет истины." (Джеральд Месси)

Цитата(baldina @  14.9.2010,  09:38 Найти цитируемый пост)
присылаете  ссылку с какого-то забора...

Во-первых, это одна из первых ссылок, что удалось найти в Интернетах. Кратко и понятно.
Во-вторых, имеющий глаза, да увидит. А имеющий голову... Ну Вы поняли.

Вам никогда не доводилось слушать курс "Философия" в ВУЗе? Есть там замечательный раздельчик "Истина и её критерии". Или в рамках курса "Философия естественно-научного знания" есть несколько более подходящая родственная тема "Критерии научности". Так вот, уважаемый, почитайте как-нибудь на досуге. Ссылка на авторитеты - лишь один из критериев научности. И не самый значимый. Цитата в начале сообщения как бы говорит нам, почему...

Цитата(baldina @  14.9.2010,  09:38 Найти цитируемый пост)
я использую терминологию, соответствующую русскоязычной тех. лит., в т.ч. переводной. например тут 

Давайте разберёмся по порядку.
Во-первых, это и есть какой-то забор. Что это? Где ссылка на первоисточник? Где указан переводчик?
Во-вторых, господин Страуструп - авторитет в мире C++. Как специалиста по CS в общем его авторитет, как минимум, сомнителен. Могло быть и так: к моменту создания C++ собственно раздельной компиляции не существовало. И автор языка использовал этот термин. По-моему, Керниган называл компиляцию в С именно separate. Сейчас, однако, устоялась терминология, приведённая по ссылке в моём предыдущем сообщении.
В-третьих, также сомнительна репутация неизвестного переводчика. Вы "не первый год замужем" и о качестве переводов технической литературы на великий и могучий должны быть в курсе.
В-четвёртых, откуда переодчик мог знать об этом различии, если даже Страуструп не в курсе.
В-пятых, то, что правильные вещи в основном приходится цитировать "с заборов" - проблема CS в целом. Слишком много "неучей" и слишком много, верящих в "истины" "авторитетов"...


--------------------
PM MAIL WWW GTalk Jabber   Вверх
baldina
Дата 14.9.2010, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



ваша терминология настолько устоялась, что википедия и прочие известные (англоязычные) источники о ней не в курсе. а термин "independent" почти не встречается, да и там где есть, очень часто как синоним "separate".
для философов напомню, что суть терминологии не в ней самой, а что бы ее одинаково понимали обе стороны. вобщем все это пустой флейм, я боле не участвую.
и хамить мне не надо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.