Связывание DLL с файлом .DEF или .LIB - PullRequest
1 голос
/ 21 сентября 2011

Внимание: я ничего не знаю о C ++.Мне удобно использовать C #, но это, черт возьми, сбивает меня с толку.

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

Я пытаюсь импортировать DLL в VC ++ 2010, и я не могу найти «хороший» способ сделать это.У меня есть заголовки, которые содержат определения, и файл .DEF, который я преобразовал в файл .lib с помощью «lib».

Все, что я хочу сделать, - это иметь возможность вызывать функции, содержащиеся вDLL!Когда я пытаюсь добавить его в качестве ссылки, я получаю следующую ошибку: Не удалось добавить ссылку на файл WindowsAccessBridge.dll, поскольку это не сборка .NET и не зарегистрированный элемент управления ActiveX.

Я не могу получить доступфункции с LoadLibrary / GetProcAddress, но я действительно надеялся на «выпадающее» решение, которое не означало бы, что я должен написать код для 50+ функций.

TL; DR: как импортировать нативныйC ++ в мой проект, чтобы вызвать его функции?У меня есть файлы .lib, .def и .dll.Ваш ход?

Редактировать - я понимаю, что правильным ответом будет «Изучите язык, на котором вы пытаетесь писать».- но я действительно надеюсь, что есть простой способ сделать это.

Код:

#include "StdAfx.h"
#include "WABAPI.h"
#include "AccessBridgeCalls.h"

WABAPI::WABAPI(void)
{
}

void WABAPI::Init()
{
    initializeAccessBridge();
}

Вот мои настройки в Linker:

enter image description here

1 Ответ

1 голос
/ 21 сентября 2011

Вы включаете заголовок в свой исходный код:

#include <your_header.h>

Затем вы указываете компоновщику использовать файл .lib:

enter image description here

Это изображениевзято из VS 2008, но если память служит, расположение в VS 2010 аналогично.

...