Форум русскоязычного сообщества Ubuntu


Автор Тема: Вопрос по С/С++  (Прочитано 811 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн voldim

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Вопрос по С/С++
« : 10 Июля 2017, 00:42:37 »
Возможно ли подключение динамической библиотеки *.so к проэкту не имея заголовочного файла от этой библиотеки? Имеется динамическая библиотека с нужным функционалом, исходного кода этой библиотеки как и заголовочного файла нету.

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Re: Вопрос по С/С++
« Ответ #1 : 13 Июля 2017, 21:50:17 »
Теоретически это возможно.
Надо самому написать этот заголовочный файл. Понятное дело, задача может быть _очень_ нетривиальной, да и просто неосуществимой, если вам неизвестно, какие параметры надо передавать библиотеке (количество и типы), а также типы возвращаемых значений.

С другой стороны,
Код: (C) [Выделить]
void printf(char *fmt, ...);
int main (void) {
 int i=2;
 printf("Hello, i = %d\n", i);
 return 0;
}
вполне себе компилится без всякого  stdio.h
gcc -fno-builtin noheader.c -o noheader

Если у вас есть дока по библиотеке, то опишите все используемые функции и вперед!
Делюсь знаниями, но их у меня мало!

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Вопрос по С/С++
« Ответ #2 : 13 Июля 2017, 23:16:41 »
/* victor00000
* gcc test.c -o test
* ./test 0 12 345 abcdef
*/
#include <stdio.h>

int main (int ac, char *av[]){
int i;
for ( i=1; i<ac; i++){
while (*av[i]){
printf ("%c",*av[i]);
av[i]++;
}
printf ("\n");
}
return 0;
}
:)
Wars ~.o

 

Страница сгенерирована за 0.034 секунд. Запросов: 25.