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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: namespace и dllexport  (Прочитано 13552 раз)
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« : Июль 02, 2005, 03:59 »

Нужно чтобы класс был виден в dll

конструкция типа

Код:
#define DllExport   __declspec( dllexport )

class DllExport C
{
   int i;
   virtual int func( void )
   { return 1; }
};


прокатывает

а вот такая к сожалению нет

Код:

#define DllExport   __declspec( dllexport )

namespace A{

class DllExport C
{
   int i;
   virtual int func( void )
   { return 1; }
};
}


начинает ругатся - что можно сделать?
Записан
lepsai
Гость
« Ответ #1 : Июль 02, 2005, 10:27 »

а чё говорит?
У меня такие конструкции работают без проблем.
Vs 6.0 Sp6
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Июль 02, 2005, 14:00 »

да компилятор жестоко ругается
и именно с namespace
Записан
lepsai
Гость
« Ответ #3 : Июль 02, 2005, 14:08 »

Ошибку и код постани...
Записан
lepsai
Гость
« Ответ #4 : Июль 02, 2005, 14:14 »

о, мля. наврал! У меня так тоже не работает, на зато так:
Код:

#define DllExport   __declspec( dllexport )

namespace A
{

class B
{
   DllExport   void func();
};

}
[/code]
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #5 : Июль 03, 2005, 20:11 »

во я до этого тоже уже допер

но почему первый вариант не воркает вообще не пронимаю
Записан
Anton
Гость
« Ответ #6 : Декабрь 28, 2005, 11:27 »

Никто не знает где поподробнее почитать про использование dll, написанной на builder в visual studio. необходима неявная компоновка
Записан
kolobok0
Гость
« Ответ #7 : Февраль 21, 2006, 15:42 »

Если написать в ашнике так...
Код:

#ifdef LIKBEZ
#define LIKBEZ_API __declspec(dllexport)
#else
#define LIKBEZ_API __declspec(dllimport)
#endif


namespace A{

class LIKBEZ_API C
{
   int i;
   virtual int func( void )
   { return 1; }
};
}


и в настройках Вашей дэлеле применить определение LIKBEZ (чтоб вставилась строка - экспорт)


то из си плас плас мона заюзать следующим макаром этот же хеадер (в проектах ничего определять не нуна - чтобы вставилась строка импорт)...
Код:

  A::C nn;


без проблем компилится на MSVC 2005 студии.

удачи Вам
(круглый)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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