Как преобразовать проект на основе ACE TAO VS C в DLL?

#c #visual-studio #dll #exe

#c #visual-studio #dll #exe

Вопрос:

В настоящее время я новичок в DLL. У меня есть проект vs2019, созданный с использованием следующего MPC (создать созданный проект), также он использует ACE TAO

в этих примерах MPC показан только экспортируемый класс или функция, а не точка входа main()

* Как экспортировать точку входа main() (ACE_TMAIN(int argc, ACE_TCHAR argv[])) с использованием MPC?

вот MPC — make project creater

Я провел некоторое исследование библиотек DLL и обнаружил, что в большинстве примеров есть класс, который определяет методы и экспортирует эти функции

Но здесь, в этих приложениях OpenDDS, у них есть функция точки входа *ACE_TMAIN(int argc, ACE_TCHAR argv[]) основная функция, которая не является классом. как создать DLL для такого проекта VS?

вот ACE_TMAIN() в source.cpp

 ACE_TMAIN(int argc, ACE_TCHAR *argv[])
{
 // application
}
 

из MPC он определяет имя exe,
Мне нужна DLL для этого файла VS project, а не exe. DLL будет запускаться с использованием клиентского приложения (консольное приложение)

Как создать DLL из этого MPC или в VS?

Я попытался установить тип вывода в DLL, не сработало.

Комментарии:

1. Я полагаю, что вы могли бы упаковать весь проект VS в dll. Например, создайте dll.h и dll.cpp в проекте. Определите интерфейс start() в dll.cpp , затем скопируйте содержимое в main в start(), а затем установите выходные данные проекта как dll.

2. @Barrnet Chou затем скопируйте содержимое в main в start() вы имели в виду, что нам не нужен ACE_TMAIN(){} для запуска остальной части кода? какие функции являются основными () в этом коде? и я могу вызвать start() из моего консольного проекта c , включив эту DLL?

3. Согласно предоставленной информации, функция ACE_TMAIN() является функцией ввода. Итак, вы могли бы попробовать следовать обычной функции ввода. Конечно, вы также можете узнать о dllmain .

4. @Barrnet Чоу, мой плохой…. Я не совсем уверен, является ли ACE_TMAIN() функцией ввода … поскольку он действует как main(), я предполагаю, что это функция ввода………

5. @Barrnet Chou здесь они вызывают ACE_TMAIN() в качестве функции ввода dre.vanderbilt.edu /~schmidt/DOC_ROOT/ACE/docs/…