Один объектный файл для приложения (exe) и библиотеки (dll)
От: NWhisper  
Дата: 14.11.06 04:47
Оценка:
Всем привет! Встал интересный вопрос, можно ли так сделать на Visual C++?

Допустим, есть заголовочный файл:
//file1.h
class API App
{
public:
    void foo();
}

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

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

Далее, пишем еще один исходник:
//file2.cpp
#define API __declspec(dllexport)
#include "file1.h"

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

Может кто-нибудь сказать почему не экспортируется App::foo?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.