Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ? / 11 сообщений из 11, страница 1 из 1
07.09.2015, 14:28
    #39044968
cpp2015
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
Везде в документации и примерах в основном используется только 3 типа: int, char, double.
А как на счёт bool, __int64, unsigned __int64 и т.д. ? Можно ли их использовать или нежелательно ? Или предпочтительнее всегда использовать только простые int, char, double, чтобы избежать возможных проблем с вызовом функций из других программ и языков ? Существует ли какой-то регламент, стандарт или "правила хорошего тона" на этот счёт ?
...
Рейтинг: 0 / 0
07.09.2015, 14:46
    #39044985
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
Использовать можно что угодно. Важно только понимать как это действует на уровне железа
(ассемблера).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.09.2015, 14:50
    #39044989
Зимаргл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
Не совсем. Рекомендуется ограничиваться POD - типами.

http://en.cppreference.com/w/cpp/concept/PODType
...
Рейтинг: 0 / 0
07.09.2015, 15:14
    #39045012
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
ЗимарглРекомендуется ограничиваться POD - типами.
Да ну, pure abstract class-ы передаются тоже легко.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.09.2015, 15:39
    #39045047
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
ЗимарглНе совсем. Рекомендуется ограничиваться POD - типами.

http://en.cppreference.com/w/cpp/concept/PODType


не пиши ерунду.
можно экспортировать все что угодно.
...
Рейтинг: 0 / 0
07.09.2015, 15:45
    #39045054
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
[quot cpp2015]Везде в документации и примерах в основном используется только 3 типа: int, char, double.

а что ж ты еще хотел увидеть в примерах? библиотеку на 100 классов и их экспорт ?


А как на счёт bool, __int64, unsigned __int64 и т.д. ? Можно ли их использовать или нежелательно ?

можно

Или предпочтительнее всегда использовать только простые int, char, double, чтобы избежать возможных проблем с вызовом функций из других программ и языков ?

вызов из других языков - тема отдельная, и очень большая.



Существует ли какой-то регламент, стандарт или "правила хорошего тона" на этот счёт ?


если внутри языка - нет. если между разными языками и платформами -- зависит от конкретного языка и платформы. например есть JNI, COM...
...
Рейтинг: 0 / 0
05.11.2015, 07:54
    #39094835
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
MasterZiv А как на счёт bool, __int64, unsigned __int64 и т.д. ? Можно ли их использовать или нежелательно ?

можно

Или предпочтительнее всегда использовать только простые int, char, double, чтобы избежать возможных проблем с вызовом функций из других программ и языков ?

вызов из других языков - тема отдельная, и очень большая.

Действительно. В стандарте Си, например, указано что в каждой конкретной реализации могут быть определены так называемые extended intger types. И эти типы совместно со standart integer types образуют integer types. Размер каждого типа данных из standart integer types зависит среды, extended types не зависят от внешних факторов и всегда имеют фиксированный размер. Почему бы тогда не отказаться от использования типов из множества standart integer types ? Есть ли причины, кроме совместимости с уже созданными программами, чтобы не отказываться от standart integer types?

PS
Меня смущает что у нас получается какая-то мини-виртуальная машина.
...
Рейтинг: 0 / 0
05.11.2015, 08:07
    #39094839
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
SSДействительно. В стандарте Си
И в стандарте С++ аналогично
...
Рейтинг: 0 / 0
05.11.2015, 14:39
    #39095371
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
SashaMercuryPS
Меня смущает что у нас получается какая-то мини-виртуальная машина. При чем тут машина? Потенциально библиотеки и программу можно собирать разными компиляторами. Если внутренняя реализация типов окажется разной, то библиотека будет несовместима с программой.
Если программа и библиотеки собираются одним компилятором, то проблем быть не должно.
...
Рейтинг: 0 / 0
05.11.2015, 14:59
    #39095412
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
mcureenabSashaMercuryPS
Меня смущает что у нас получается какая-то мини-виртуальная машина. При чем тут машина? Потенциально библиотеки и программу можно собирать разными компиляторами. Если внутренняя реализация типов окажется разной, то библиотека будет несовместима с программой.
Если программа и библиотеки собираются одним компилятором, то проблем быть не должно.


На самом деле это всё сводится к понятию ABI. Если он определён, и компоненты программы работают в рамках одного ABI, то всё ОК,
если нет -- всё плохо.
...
Рейтинг: 0 / 0
06.11.2015, 02:06
    #39096024
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ?
mcureenab При чем тут машина? Потенциально библиотеки и программу можно собирать разными компиляторами. Если внутренняя реализация типов окажется разной, то библиотека будет несовместима с программой.
Если программа и библиотеки собираются одним компилятором, то проблем быть не должно.

Замечание не по существу. То что я имел ввиду вполне понятно. Не нужно сильно абстрагироваться
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Какие типы данных допустимо использовать в параметрах экспортируемых функций DLL ? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]