Re: Один объектный файл для приложения (exe) и библиотеки (d
От: denaturat  
Дата: 14.11.06 07:51
Оценка:
Здравствуйте, NWhisper, Вы писали:

NW>Всем привет! Встал интересный вопрос, можно ли так сделать на Visual C++?


NW>Допустим, есть заголовочный файл:

NW>
NW>//file1.h
NW>class API App
NW>{
NW>public:
NW>    void foo();
NW>}
NW>

NW>И есть исходник:
NW>
NW>//file1.cpp
NW>#define API
NW>#include "file1.h"
NW>void App::foo()
NW>{}
NW>

NW>После выполнения cl /MD file1.cpp получается файл file1.obj.

NW>Далее, пишем еще один исходник:

NW>
NW>//file2.cpp
NW>#define API __declspec(dllexport)
NW>#include "file1.h"
NW>

NW>После сборки этого исходника командой cl /LD /MD file2.cpp /link file.obj появляется file2.dll, которая не экспортирует App::foo.

NW>Может кто-нибудь сказать почему не экспортируется App::foo?


1. Как определил, что не экспортируется?
2. Все должно быть в порядке, если же ты будешь использовать этот класс из другого модуля, то в его объявлении надо будет ставить __declspec(dllimport)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.