Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. В C++ имеются пространства имён и классы, в то время как в C этого нет. Как библиотеку, написанную на C++ используют в C? Насколько я понимаю, для C нужно будет и заголовочные файлы создавать отдельные... Буду признателен за небольшие наглядные примеры. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2013, 19:51 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
CompositumКак библиотеку, написанную на C++ используют в C? Точно так же. Пространства имён и классы это всего лишь привески в mangled names. Вменяемые библиотеки оборачивают экспортируемые функции в extern "C". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2013, 20:01 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТочно так же. Можете показать пример, как вы будете использовать в C, например, следующий заголовочный файл? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Как в C вы вызовете все три функции? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2013, 20:23 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
CompositumМожете показать пример, как вы будете использовать в C, например, следующий заголовочный файл? Ну, если речь идёт о таких библиотеках, то ответ на сабж: никак. Если библиотека предполагается к использованию в С - делается отдельный интерфейс. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2013, 20:27 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovCompositumМожете показать пример, как вы будете использовать в C, например, следующий заголовочный файл? Ну, если речь идёт о таких библиотеках, то ответ на сабж: никак. Если библиотека предполагается к использованию в С - делается отдельный интерфейс. Предлагаю не превращать топик в очередное поле для абстрактных теоретических рассуждений. Язык программного кода более предпочтителен. Выше я показал упрощённый пример с inline функциями. Если невозможно использовать "такой" заголовочный файл (по мне вполне понятным причинам), то логично было бы показать его C-интерпретацию - именно о ней я и спрашиваю. Я понимаю, что в C-версии заголовков функции должны быть вынесены за рамки объявления структуры и в экземплярной функции первым аргументом, наверняка должен быть аналог this, а так же внесены и некоторые др. изменения, но не всё мне понятно: например, как обыграть namespace и конструктор... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2013, 20:38 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Compositumнапример, как обыграть namespace и конструктор... Никак. namespace отсекается extern "C", конструкторы - под запретом. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2013, 20:46 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovCompositumнапример, как обыграть namespace и конструктор... Никак. namespace отсекается extern "C", конструкторы - под запретом. Т.о. полноценно библиотеку C++ в C невозможно использовать? Ведь, понятное дело, нет смысла ограничивать библиотеку в угоду C, а с др. стороны, если невозможно создавать объекты, используя конструкторы, то всё сводится на нет... Да и то, что namespaces обрезаются - потенциальный источник конфликтов, т.к. в разных пространствах имён могли находиться одноимённые функции с одинаковыми сигнатурами. Верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2013, 20:51 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Compositum, ну, например, так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2013, 20:51 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Compositumпотенциальный источник конфликтов, т.к. в разных пространствах имён могли находиться одноимённые функции с одинаковыми сигнатурами. Именно это - источник symbol hell в Linux. И "сигнатура" функции в С это её имя. Поэтому в С-интерфейсах широко используются префиксы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2013, 21:00 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
CompositumТ.о. полноценно библиотеку C++ в C невозможно использовать? Ведь, понятное дело, нет смысла ограничивать библиотеку в угоду C, а с др. стороны, если невозможно создавать объекты, используя конструкторы, то всё сводится на нет... Полноценно библиотеку C++ в C использовать можно. Просто вы не те приоритеты расставляете. Ценность библиотеки в том что она решает какую -то задачу, а не в том что есть какие-то конструкторы или другой синтаксический сахар. Если вы хотите использовать ее в С, то пишете легковесную обертку на С++, которая имеет С-интерфейс, а внутри вызывает С++-библиотеку для решения задачи. По научному это - шаблон проектирования Adapter. А то что вы не можете в С использовать синтаксис С++, это вполне естественно. Хотите синтаксис С++ - пишите программы на С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2013, 21:16 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Compositum, Библиотеки с++ в с не используют. Обратное возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2013, 00:43 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Т.о. полноценно библиотеку C++ в C невозможно использовать? Да, невозможно. Наоборот возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2013, 09:03 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
MasterZivТ.о. полноценно библиотеку C++ в C невозможно использовать? Да, невозможно. Наоборот возможно. Уже не один раз на эту тему рассуждали... Влоб - невозможно. Но никто и ничто не мешает соорудить "обёртку". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 12:35 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
zMasterZivТ.о. полноценно библиотеку C++ в C невозможно использовать? Да, невозможно. Наоборот возможно. Уже не один раз на эту тему рассуждали... Влоб - невозможно. Но никто и ничто не мешает соорудить "обёртку". Соорудить обертку можно, но только если не используются интенсивно шаблоны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 17:53 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Возвращаюсь к данной теме... Внизу прикреплён архив с двумя маленькими тестовыми "проектами": - проект библиотеки (DLL файла) - проект приложения, использующего указанный выше DLL файл. Оба проекта написаны на C++. Буду признателен, если кто-нибудь покажет, как на C написать приложение, использующее функционал моей DLL и выполняющее то же самое, что и мой exe файл. В файле readme.txt написано что к чему, а так же дана ссылка на web-страницу с более подробной информацией. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 20:30 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Если у кого-то браузер не Google Chrome и не хочет скачивать по указанной ссылке, альтернативная ссылка (правда там readme.txt уже на англ. языке): http://files.mail.ru/457E37297C5345ADB32E30D456C99CBD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 22:13 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Compositum, Дело не в ссылке, а в том что мы вообще не хотим ничего скачивать :) Оформите это как задание на одном из тысяч фрилансерсих сайтов - там вам это сделают за 5 копеек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 22:23 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyДело не в ссылке, а в том что мы вообще не хотим ничего скачивать :) Так никто и не заставляет. Anatoly MoskovskyОформите это как задание на одном из тысяч фрилансерсих сайтов - там вам это сделают за 5 копеек.Я не студент, который хочет сдать преподу чужой труд, выдавая его за свой. Тема закрыта, разобрался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2013, 22:32 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
MasterZivzпропущено... Уже не один раз на эту тему рассуждали... Влоб - невозможно. Но никто и ничто не мешает соорудить "обёртку". Соорудить обертку можно, но только если не используются интенсивно шаблоны. А я то и не знал, и "сдуру" либу agg затолкал в обертку для проского С... И ведь заработало! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 15:59 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
Если кому интересна конкретика, то по данной теме мне подробно ответили здесь (см. сообщение, помеченное мною как ответ). Там же перечислены все нюансы и показан вариант C интерфейса обозначенной мною библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 16:05 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
zА я то и не знал, и "сдуру" либу agg затолкал в обертку для проского С... И ведь заработало! Молодец! Затолкай еще заодно библиотеку boost::multi_index "в обертку для плоского С", да так, чтобы без потери ее универсальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 22:03 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
kamre, Задача - использовать С++ библиотеку из С, а не сделать универсальную обертку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 22:08 |
|
||
|
Использование библиотек C++ в C
|
|||
|---|---|---|---|
|
#18+
kamrezА я то и не знал, и "сдуру" либу agg затолкал в обертку для проского С... И ведь заработало! Молодец! Затолкай еще заодно библиотеку boost::multi_index "в обертку для плоского С", да так, чтобы без потери ее универсальности.Радуют меня такие вопли. "А сделай вот такую дурную работу! Не хочешь! Значит ее невозможно сделать." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2013, 22:18 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38313302&tid=2020112]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 280ms |
| total: | 426ms |

| 0 / 0 |
