winforms — C ++ API DLL Project

У меня есть проект C ++, который использует API, который поставляется с файлами DLL и LIB, а также файл заголовка.
Я хочу создать проект Win32 формы.

Мой вопрос заключается в том, как связать проект с файлами DLL и lib.

Но главный вопрос, как мне подписаться на события?
В API я могу вызывать функции, которые возвращаются как при ответе на событие, которые в проекте MFC я бы обычно подписывал в цикле сообщений. Но в Win32 нет цикла сообщений.

Может быть, я сам усложняю ситуацию, и это легче, чем я себе представляю.
Пожалуйста, проясните эту ситуацию для меня.

Спасибо.

0

Решение

Всегда трудно ответить, когда кто-то задает более одного вопроса … В случае вашего «основного вопроса», пожалуйста, покажите соответствующий вызов API для подписки на события. Вы ошибаетесь из-за отсутствия цикла сообщений в Win32 … Просто нет MFC Цикл сообщений.

Сейчас я отвечаю на простой вопрос … «Как вы связываете DLL». Я предполагаю, что вы используете Visual Studio. Это верно? То, как я делаю это, когда я спешу, выглядит так:

#include "mylib.h"#pragma comment(lib, "mylib.lib")

Это все, что нужно сделать. Конечно, мне нужен заголовок, но пока я говорю, компилятору тоже нужно связать библиотеку.

Кажется, я вспоминаю другие случаи, когда я просто перетаскивал файл библиотеки в представление решения проекта, фактически добавляя его в качестве источника. Это тоже работает.

Долгий путь — отредактировать настройки вашего проекта, перейти к Linker раздел и под вход подраздел, вы добавляете свою библиотеку в Дополнительные зависимости список. Вы должны сделать это для всех конфигураций. Есть способы сохранить это должным образом, но я не буду вдаваться в подробности здесь.

Если вы не используете Visual Studio, игнорируйте мой ответ.

2

Другие решения

Вы не можете связать проект с dll-файлами, вы можете связать свой проект с lib-файлами, вы можете добавить имена lib-файлов в диалог настроек вашего проекта (компоновщик)

Или вы добавляете это в свой код

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

Файлы DLL будут загружены во время выполнения.

Для цикла сообщений см. http://msdn.microsoft.com/en-us/library/windows/desktop/ms644928(v=vs.85).aspx

Или это: http://msdn.microsoft.com/en-us/library/windows/desktop/ms644996(v=vs.85).aspx#modeless_box

1

По вопросам рекламы [email protected]