Прогер
|
||||||
1 | ||||||
Почему в билдер extern "C" не работает?25.02.2012, 12:09. Показов 4068. Ответов 12
Метки нет Все метки)
(
Привет всем, у меня вопрос, почему в билдер(XE2) extern linkage не работает?
0
|
|
25.02.2012, 12:09 | |
Ответы с готовыми решениями:
12
Что означает extern "C" или extern "C++"? Почему когда я включая си билдер пишется- "Error! Object.obj not found. Programm will be closed."
Не могу понять почему не работает в первом кейсе "Suma modyley posle 0" и "Masiv 2(spo4atku parni pozicii)" |
Модератор
3352 / 2127 / 349
Регистрация: 13.01.2012
Сообщений: 8,290
|
|
25.02.2012, 12:42 | 2 |
вы неверно понимаете назначение данной конструкции. она употребляется с прототипами функций написанных на С. для кода она не употребляется - код С вы можете употреблять в программах без ограничений.
0
|
Модератор
3352 / 2127 / 349
Регистрация: 13.01.2012
Сообщений: 8,290
|
|
25.02.2012, 23:36 | 4 |
каких ошибок? может не в этом дело
0
|
117 / 74 / 6
Регистрация: 23.01.2012
Сообщений: 186
|
||||||
26.02.2012, 10:47 | 6 | |||||
Может стоит этот код вынести из функции
1
|
Модератор
3352 / 2127 / 349
Регистрация: 13.01.2012
Сообщений: 8,290
|
|
26.02.2012, 14:06 | 7 |
вот это -
вопрос в том - что вы запихиваете в директиву extern "C" и почему же это оно не может без нее жить - как я понял без этой директивы у вас какие то ошибки
1
|
Прогер
|
|||||||||||
26.02.2012, 18:31 [ТС] | 8 | ||||||||||
_engineer_,
Да, так уже работает, значит его в функцие нелзя использовать... vxg, Ето ошибка тоже из за того что ее нелзя использовать в функцие... Спасибо всем Добавлено через 2 часа 26 минут Может ктото приведит пример, как вбилдер работает extern "C" ? Я пытаюс так: 1. Создоваю .с файл с содержанием
0
|
Модератор
3352 / 2127 / 349
Регистрация: 13.01.2012
Сообщений: 8,290
|
|
27.02.2012, 13:07 | 9 |
extern "C" используется для линковки с библиотеками (не с файлами вашего проекта). я не понимаю что вы хотите сделать с extern "C"...
Добавлено через 47 секунд ошибка которую вы привели говорит следующее - не могу найти функцию jami - где она у вас? ее нет
0
|
Прогер
|
|||||||||||
29.02.2012, 01:36 [ТС] | 10 | ||||||||||
vxg,
Да, шас понял... С функцию, можно обявить в хедер: extern.h:
0
|
Модератор
3352 / 2127 / 349
Регистрация: 13.01.2012
Сообщений: 8,290
|
|
29.02.2012, 07:52 | 11 |
в заголовочных файлах как правило не производится определения функции за исключением случаев когда это inline-функция (функция код которой будет автоматически подставлен вместо ее вызовов в код программы). традиционным способом объявления функций является размещение их прототипов в заголовочных файлах и их определение в CPP файлах. в другие модули из которых мы хотим получить доступ к функции вставляется ссылка на заголовочный файл при помощи директивы #include. ваш пример будет работать, просто он несколько выходит за рамки традиционных подходов к делению программы на модули. необходимости в директиве extern "C" в данном коде нет.
1
|
Модератор
3352 / 2127 / 349
Регистрация: 13.01.2012
Сообщений: 8,290
|
|
29.02.2012, 22:59 | 13 |
в длл при экспорте функции без extern C не обойтись - имена испортятся
0
|
29.02.2012, 22:59 | |
Помогаю со студенческими работами здесь
13
Почему не работает функция std::regex_replace(temp,"amp;",""); error LNK2001: unresolved external symbol "extern "C" int __stdcall Error LNK2031: unable to generate p/invoke for "extern "C" enum CURLcode __clrcall curl_easy_setopt
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |