Показать сообщение отдельно
Старый 01.07.2012, 14:45   #27
jimon
 
Сообщений: n/a
Ответ: Бинарные файлы

Сообщение от impersonalis Посмотреть сообщение
представление на разных компиляторах (и настройках) различаются, и потому если не убирать выравнивания то тупо переслать кусок памяти между программами не удастся.
у каждого компилятора есть свой ABI (Application Binary Interface), иногда он задаётся самим языком, а иногда не задаётся так вот в C и C++ он не определяется стандартами, отсюда твои проблемы ?

ps. если да, то советую глянуть как у нас устроен вызов функций - везде юзается какое нибудь заранее обговоренное соглашение о вызове ( stdcall и прочие : http://en.wikipedia.org/wiki/X86_calling_conventions ), собственно если вызывающий код (например в другой библиотеке) не знает о соглашении то ничего не получится, вот так же делается и с структурами - надо кидать структуры между программами с разным ABI напрямую ? обговаривай соглашение и всё, зачастую выравнивание на 4 обговорить и хватит, самое сложное - это указатель на метод, он везде разный размер имеет (от 8 до 20 байт)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (01.07.2012)