Не удается найти файл lib, когда я указал DLL - PullRequest
0 голосов
/ 21 октября 2011

Я новичок в Visual C ++ и ржавый с C ++.

Я создал проект dll, следуя визуальным указаниям C ++. Теперь я хочу проверить свою DLL, чтобы убедиться, что она работает. Я создал пустой проект и поместил в tester.cpp. Я добавил dll к ссылкам проекта и к пути. Затем я пытаюсь запустить его.

До того, как я включил материал из моей библиотеки ("Hello world!"), Он работал Теперь, когда я положил свои вещи, чтобы ссылаться на DLL, это не удается. Сообщение:

1> ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл 'C: \ Users \ thom \ Documents \ cworkspace \ barnaby \ Debug \ barnaby.lib'

Вещь, которую я не понимаю, это ссылки на dll, которые существуют на пути выше. Вот мой код:

#include <iostream>
#include <string>
#include <vector>

#include "barnaby.h"

int main(int argc, char *argv[]){
    std::vector<std::string> tzNames = Barnaby::TimeZoneFunctions::getTimezoneList();
    for(std::vector<std::string>::iterator iter = tzNames.begin(); iter != tzNames.end(); iter++){
        std::cout << *iter << std::endl;
    }
}

идеи?

1 Ответ

0 голосов
/ 24 октября 2011

ОК, поэтому я нашел ответ от http://binglongx.wordpress.com/2009/01/26/visual-c-does-not-generate-lib-file-for-a-dll-project/, который велел мне включить следующий код в мой заголовок для DLL:

#ifdef BARNABY_EXPORTS
#define BARNABY_API __declspec(dllexport)
#else
#define BARNABY_API __declspec(dllimport)
#endif

Затем каждая функция, которую я экспортирую, просто предшествуетпо:

BARNABY_API int add(){
}

Все это можно было бы предотвратить, либо щелкнув по полю «Экспортировать символы» в мастере DLL нового проекта, либо проголосовав «да» за лоботомию для разработчиков приложений.

Спасибо запомощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...