Russian Qt Forum

Компиляторы и платформы => Visual C++ => Тема начата: Admin от Июль 02, 2005, 03:59



Название: namespace и dllexport
Отправлено: Admin от Июль 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; }
};
}


начинает ругатся - что можно сделать?


Название: namespace и dllexport
Отправлено: lepsai от Июль 02, 2005, 10:27
а чё говорит?
У меня такие конструкции работают без проблем.
Vs 6.0 Sp6


Название: namespace и dllexport
Отправлено: Admin от Июль 02, 2005, 14:00
да компилятор жестоко ругается
и именно с namespace


Название: namespace и dllexport
Отправлено: lepsai от Июль 02, 2005, 14:08
Ошибку и код постани...


Название: namespace и dllexport
Отправлено: lepsai от Июль 02, 2005, 14:14
о, мля. наврал! У меня так тоже не работает, на зато так:
Код:

#define DllExport   __declspec( dllexport )

namespace A
{

class B
{
   DllExport   void func();
};

}
[/code]


Название: namespace и dllexport
Отправлено: Admin от Июль 03, 2005, 20:11
во я до этого тоже уже допер

но почему первый вариант не воркает вообще не пронимаю


Название: namespace и dllexport
Отправлено: Anton от Декабрь 28, 2005, 11:27
Никто не знает где поподробнее почитать про использование dll, написанной на builder в visual studio. необходима неявная компоновка


Название: namespace и dllexport
Отправлено: kolobok0 от Февраль 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 студии.

удачи Вам
(круглый)