Код методов класса запихнуть в *.lib
От: Vain Россия google.ru
Дата: 06.09.06 03:43
Оценка:
Есть класс:
//test_lib.cpp
class __declspec(dllexport) TEST {
public:
  T_TEST() {
    printf("%s\n",__FUNCSIG__);
  }
};


Хочу его запихнуть в статическую либу, но при этом при использовании этого класса в либе показывать в подключаемом заголовке токо интерфейс:
class __declspec(dllimport) TEST {
public:
  TEST();
};

#pragma comment(lib,"test.lib")

int main() {
  TEST test;
  return 0;
}


Или я хочу невозможного?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: Код методов класса запихнуть в *.lib
От: np9mi7 Россия  
Дата: 06.09.06 04:44
Оценка:
Здравствуйте, Vain, Вы писали:

V>Или я хочу невозможного?


В чем проблема? И причем тут __declspec(dllexport) / __declspec(dllimport) непонятно. Они не нужны;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
"В любое мгновение принятия решения, лучшее, что вы можете сделать, это принять правильное решение; следующим лучшим вариантом будет принять неправильное решение, худший вариант – не принимать решения совсем" (c) Теодор Рузвельт.
Re[2]: Код методов класса запихнуть в *.lib
От: Vain Россия google.ru
Дата: 06.09.06 11:24
Оценка:
Здравствуйте, np9mi7, Вы писали:

N>В чем проблема?

Проблема в том, что не линкуется конструктор.
N>И причем тут __declspec(dllexport) / __declspec(dllimport) непонятно. Они не нужны;
Это я просто показал для наглядности, как бы я хотел создавать либу и её использовать
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: Код методов класса запихнуть в *.lib
От: Аноним  
Дата: 06.09.06 15:36
Оценка:
Здравствуйте, Vain, Вы писали:

>>Хочу его запихнуть в статическую либу, но при этом при использовании этого класса в либе показывать в подключаемом заголовке токо интерфейс:


В таком виде неполучится. Может, pimpl поможет?
Re[2]: Код методов класса запихнуть в *.lib
От: Vain Россия google.ru
Дата: 06.09.06 16:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>В таком виде неполучится. Может, pimpl поможет?

Я так понял тут всёравно придётся делать классы в либу? можно пример простецкий, с созданием либы и её использованием, а то я не совсем понял.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: Код методов класса запихнуть в *.lib
От: Vain Россия google.ru
Дата: 08.09.06 00:18
Оценка:
Здравствуйте, Vain, Вы писали:

V>Или я хочу невозможного?

Я так понял, что все методы надо выносить за класс, чтобы их линкер в либу слинковал, хотя всё равно не понимаю почиму такое не линкует :
class /*__declspec(dllexport)*/ TEST {
public:
  __declspec(noinline) T_TEST() {
    printf("%s\n",__FUNCSIG__);
  }
};
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.