из племени тумба-юбма
|
|
1 | |
Как добавлять в библиотеку отсутствующие функции, типа scanf_s, printf_s ?09.12.2020, 20:50. Просмотров 1826. Ответов 15
Метки нет Все метки)
(
0
|
|
09.12.2020, 20:50 | |
Функции gets_s, printf_s и другие с подчеркиванием Как добавлять файлы в поля типа TBlobField? Как в приложения asp.net добавлять элементы типа: Edit, Button? Корректно ли добавлять обработчик исключений в библиотеку классов |
|
из племени тумба-юбма
|
|
11.12.2020, 16:15 [ТС] | 3 |
Ну знаю, что можно создать пользовательский файл и указывать его в виде "stdio.h", вместо <stdio.h>, вот про него говорю. А как добить правильно, не знаю.
0
|
из племени тумба-юбма
|
|
12.12.2020, 19:35 [ТС] | 5 |
Неужели вправду, так плохо объясняю задачу?
В стандартном файле библиотеки - stdio.h, задаются функции scanf(), printf(). Я хочу создать копию данного файла и добавить в него, допустим функцию scanf_s(). В дальнейшем использовать свой файл библиотеки stdio.h, а не стандартный файл.
0
|
12.12.2020, 19:48 | 6 | |||||
А-а-а. понятно.
Меня сбаламутило слово "библиотека", которая подразумевает *.lib/dll/s/so/a и т.п. Делаем свой H-файл вида
1
|
из племени тумба-юбма
|
|
12.12.2020, 19:55 [ТС] | 7 |
drfaust
![]() Вы самое главное забыли дописать, какие строки мне надо добавить конкретно, чтоб в моем файле был прописан scanf_s(). Я совсем не знаю синтакиса файла stdio.h. Добавлено через 32 секунды потом может еще чего то потребуется добавить
0
|
152 / 175 / 26
Регистрация: 29.03.2019
Сообщений: 518
|
||||||||||||||||
14.12.2020, 16:18 | 8 | |||||||||||||||
мама Стифлера, описанное выше имеет "небольшой" недостаток. Вам придется постоянно копировать файлы my_stdio.h, my_stdio.c в новые проекты. Есть еще вариант, собрать свою разделяемую/статическую библиотеку, а my_stdio.h кинуть в /usr/include. В таком случае нужно быдет просто линковать библиотеку каждый раз при сборке.
1
|
из племени тумба-юбма
|
|
14.12.2020, 16:49 [ТС] | 9 |
zeroalef, хм..спасибо. Только я не понял, что значит
Должна быть стандартная реализация, которая прописана в файлах VS, (я даже не знаю что там прописано) И еще, зачем создавать файл "my_stdio.c", что одного "my_stdio.h" не достаточно? Добавлено через 2 минуты Что то данный процесс, для меня показался слишком сложным ![]()
0
|
152 / 175 / 26
Регистрация: 29.03.2019
Сообщений: 518
|
|
14.12.2020, 17:05 | 10 |
Что мешает использовать ms окружение и не пытаться почесать ухо ногой? Там все эти <funcname>_s доступны искаропки.
Функции в заголовках описывать нельзя. Это M$ специфические функции. Хотя на SO пишут что опции --std=c11 должно хватить, мой вывод grep -Rn scanf_s /usr/include/ оказался пустым.
0
|
из племени тумба-юбма
|
|
14.12.2020, 17:06 [ТС] | 11 |
zeroalef, да я устанавливал VS, в самом начале, когда только начал изучать Си. Потом снес его, из за сложности реализации и специфичности функций, используемых только в VS. Вот подумал, может снова установить и не парится со своими библиотеками? ))
Я за год привык уже к Dev-C++, в нем не нужно создавать отдельный проект для каждого кода, и загружается моментально.
0
|
152 / 175 / 26
Регистрация: 29.03.2019
Сообщений: 518
|
|
14.12.2020, 17:47 | 12 |
Дело конечно ваше. Переносимость даже posix совместимого кода часто вызывает зуд, не говоря уже о портировании ms зависимого кода. Лично я не вижу смысла в использовании secure реализаций от ms. Но если вам так уж сильно припёрло, попробуйте явно указать
#include "/path/to/microsoft/stdio.h" и ключик -l/path/to/microsoft/libc.dll , хотя мне мало верятно что это сработает.Добавлено через 48 секунд Конечно предварительно установив всё необходимое от ms.
0
|
из племени тумба-юбма
|
|
14.12.2020, 21:20 [ТС] | 14 |
drfaust, прошу прощения, я не правильно выразился когда писал:
Имелось ввиду - Хочу добавить в заголовочный файл данные функции. Я почему то называю эти файлы библиотеками.
![]() Ну и потом мне уже вроде как расписали кучу советов и рекомендаций. Убедили, что если мне это действительно нужно, то лучше просто установить заново VS.
0
|
14.12.2020, 21:35 | 15 |
scanf_s() - лучше подобрать компилер, который поддерживает стандарт, нежели изобретать велосипед. ИМХО
И да. Что в Си, Что в Си++ хидеры - это только специфика языка - упреждающее объявление функций, типов, классов - излишества "строгой типизации"
0
|
442 / 224 / 47
Регистрация: 21.09.2008
Сообщений: 780
|
|
15.12.2020, 04:59 | 16 |
Файл my_stdio.h - заголовочный, в нём идут объявления (декларации) параметров структур, прототипов функций (их количество и типы передаваемых параметров, по ним компилятор строит способ передачи параметров через стек в вызываемую функцию). Файл my_stdio.с - собственно раздел реализации (имплементации, как любят выражёвываться некоторые особо продвинутые) указанных в my_stdio.h функций. Т.е. "мухи" и "котлеты" отделены друг от друга. Такой способ позволяет предоставить конечному пользователю (программисту) библиотеки в двоичном коде под определённый компилятор, не раскрывая исходники реализации, при этом описания всех структур, типов аргументов, их количество предоставляются в заголовочном файле.
0
|
15.12.2020, 04:59 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Ошибка времени выполнения при использовании функции scanf_s Как получить библиотеку типа *.tlb из COM-объекта *.exe Как правильно добавлять функции в вектор и вызывать их? Как можно создать и добавить библиотеку типа API в залоченное приложение от Alcatel lucent?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |