Форум программистов, компьютерный форум CyberForum.ru

Нахождение _export в теле extern - C++

Восстановить пароль Регистрация
 
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
02.06.2010, 16:37     Нахождение _export в теле extern #1
Ключевое слово _export нужен для того, чтоб экспортировать функции которые мы описываем в файле cpp, тип проекта которого длл, експортировать в файл .*exe.
1)Когда я подключил скомпилированный длл к файлу екзе, каким образом идёт пользование экспортируемыми функциями, они вызываются в файле екзе?

2)Что означает если я напишу:
Код
extern "C" {
void WINAPI _export masha()
               }
Меня интересует слово:
Код
extern "C"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2010, 16:37     Нахождение _export в теле extern
Посмотрите здесь:

директива extern C++
C++ _export
Проблема с extern-переменными C++
C++ ( extern char ) переопределение;
Не работает глобальный идентификатор extern C++
C++ что такое extern?
extern C++
C++ Использование extern с функциями

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
02.06.2010, 17:29     Нахождение _export в теле extern #2
C++
1
2
3
extern "C" {
  int тут_некая_функция()
}
Это обозначает что тут_некая_функция() будет использовать совместимый с языком C способ вызова функции.
Язык C и язык C++ используют разные способы вызова своих функций.
Если некий объектный файл или библиотека ( что суть архив объектных файлов ) скомпилирован с помощью компилятора C
а затем нужно вызывать эти функции из языка C++,
то как раз это указание и нужно для компилятора C++.
Иначе он будет думать что это функции C++ и вызывать их как C++ функции и при сборке будет полная ерунда.

Обычно код несколько не такой:

C
1
2
3
4
5
6
7
8
9
#ifdef __cplusplus
extern "C" {
#endif
 
int some_func();
 
#ifdef __cplusplus
}
#endif
Такое обрамление позволяет компилироваться этому коду и в C и в C++
так как конструкцию extern "C" не понимает компилятор C++
Yandex
Объявления
02.06.2010, 17:29     Нахождение _export в теле extern
Ответ Создать тему
Опции темы

Текущее время: 12:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru