Russian Qt Forum
Ноябрь 25, 2024, 07:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Миграция с MinGW на MSVC2015  (Прочитано 17445 раз)
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #15 : Июнь 30, 2016, 11:18 »

И с++11 она понимает.
Ну слава Богу... 2016 год на дворе. Улыбающийся
Записан
kai666_73
Крякер
****
Offline Offline

Сообщений: 319


Просмотр профиля
« Ответ #16 : Июнь 30, 2016, 12:17 »

А теперь Old истину глаголит.
Линкуйте библиотеку к основному коду и к плагинам, которые ее используют; и будет вам счастье  Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Июнь 30, 2016, 13:18 »

Линкуйте библиотеку к основному коду и к плагинам, которые ее используют; и будет вам счастье  Улыбающийся
Цитировать
Грузите апельсины бочками
Братья Карамазовы
Записан
Akon
Гость
« Ответ #18 : Июль 15, 2016, 15:03 »

...
Но вообще  __declspec(dllexport) это грязный хак от микрософта, по хорошему компилятор должен сам понимать, что экспортировать, а что нет.
А это очевидно? Допустим, длл имеет файл 'unit1.c', в котором есть пара функций
Код:
int foo_public() { return 0; }
static int foo_private() { return 0; }
Первая будет доступна другим модулям этой длл, вторая - нет, и с ней все очевидно - это приватная функция в либе. Далее уже перед линкером встает вопрос - делать ли первую функцию экспортируемой из самой длл или нет? Насколько я помню, gcc по-умолчанию отвечает да.

__declspec(dllimport) также служит для оптимизации - генерирует более эффективный косвенный вызов в одну инструкцию
Код:
call DWORD PTR __imp_foo_public  ; __imp_foo_public - слот в секции импорта приложения
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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