Точка входа внутри библиотеки
От: Vladimir Россия  
Дата: 08.01.18 09:45
Оценка:
Подскажите, как организовать программу и компиляцию, чтобы точка входа в программу находилась в библиотеке, как в MFC. В приложении MFC точка входа в программу находится где-то в недрах MFC!
(Т.е. в решении есть два проекта: исполняемый exe и статическая библиотека lib. Точку входа хочу поместить в lib. Возможно ли это?)
VS2015, Win7

Спасибо.
Re: Точка входа внутри библиотеки
От: Went  
Дата: 08.01.18 09:55
Оценка:
Здравствуйте, Vladimir, Вы писали:
V>Подскажите, как организовать программу и компиляцию, чтобы точка входа в программу находилась в библиотеке, как в MFC. В приложении MFC точка входа в программу находится где-то в недрах MFC!
V>(Т.е. в решении есть два проекта: исполняемый exe и статическая библиотека lib. Точку входа хочу поместить в lib. Возможно ли это?)
V>VS2015, Win7
Не совсем понимаю. Что мешает main разместить внутри библиотеки?
Re[2]: Точка входа внутри библиотеки
От: Vladimir Россия  
Дата: 08.01.18 10:07
Оценка:
Здравствуйте, Went, Вы писали:

W>Не совсем понимаю. Что мешает main разместить внутри библиотеки?

Поместил в библиотеку:
extern "C"
int APIENTRY _tWinMain(
HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
...
}
Сообщение компилятора:
error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции "int __cdecl
Интуитивно понимаю, что точку входа необходимо определить где-то в настойках проекта.
Только где и как!
Re[3]: Точка входа внутри библиотеки
От: kov_serg Россия  
Дата: 08.01.18 12:46
Оценка:
Здравствуйте, Vladimir, Вы писали:

V>Здравствуйте, Went, Вы писали:


W>>Не совсем понимаю. Что мешает main разместить внутри библиотеки?

V>Поместил в библиотеку:
V>extern "C"
V>int APIENTRY _tWinMain(
V> HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
V>{
V>...
V>}
V>Сообщение компилятора:
V>error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции "int __cdecl
V>Интуитивно понимаю, что точку входа необходимо определить где-то в настойках проекта.
V>Только где и как!
Не смущает что _tWinMain и WinMain это немного разные имена?
Re[4]: Точка входа внутри библиотеки
От: Vladimir Россия  
Дата: 08.01.18 16:05
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Не смущает что _tWinMain и WinMain это немного разные имена?

Совершенно не смущает.
#define _tWinMain wWinMain // in tchar.h
Re[5]: Точка входа внутри библиотеки
От: Сергей Мухин Россия  
Дата: 08.01.18 18:41
Оценка:
Здравствуйте, Vladimir, Вы писали:

V>Здравствуйте, kov_serg, Вы писали:


_>>Не смущает что _tWinMain и WinMain это немного разные имена?

V>Совершенно не смущает.
V>#define _tWinMain wWinMain // in tchar.h


просто проверьте имя в той библиотеке, которую подаёте на вход линкёру. Можно руками. Это имя совпадает?
---
С уважением,
Сергей Мухин
Re[5]: Точка входа внутри библиотеки
От: kov_serg Россия  
Дата: 08.01.18 18:45
Оценка:
Здравствуйте, Vladimir, Вы писали:

V>Здравствуйте, kov_serg, Вы писали:


_>>Не смущает что _tWinMain и WinMain это немного разные имена?

V>Совершенно не смущает.
V>#define _tWinMain wWinMain // in tchar.h

wWinMain и WinMain тоже разные имена. И то что линковщик хочет именно WinMain никак не смущает?
Отредактировано 08.01.2018 18:48 kov_serg . Предыдущая версия . Еще …
Отредактировано 08.01.2018 18:46 kov_serg . Предыдущая версия .
Re: Точка входа внутри библиотеки
От: AleksandrN Россия  
Дата: 09.01.18 14:37
Оценка:
Здравствуйте, Vladimir, Вы писали:

V>Подскажите, как организовать программу и компиляцию, чтобы точка входа в программу находилась в библиотеке, как в MFC. В приложении MFC точка входа в программу находится где-то в недрах MFC!


wxWidgets. В ней main спрятали куда-то внутрь библиотеки, но не в lib, а в какой то макрос (ковырял давно, сейчас не помню). Hello World на wxWidgets.
Re: Точка входа внутри библиотеки
От: landerhigh Пират  
Дата: 27.01.18 21:08
Оценка:
Здравствуйте, Vladimir, Вы писали:

V>Подскажите, как организовать программу и компиляцию, чтобы точка входа в программу находилась в библиотеке, как в MFC. В приложении MFC точка входа в программу находится где-то в недрах MFC!

V>(Т.е. в решении есть два проекта: исполняемый exe и статическая библиотека lib. Точку входа хочу поместить в lib. Возможно ли это?)
V>VS2015, Win7

Посмотри, как gtest организован.
Именно так и есть — main в gtest-main либе.
www.blinnov.com
Re: если ты знаешь, что делаешь, то почему
От: ksd Россия  
Дата: 29.01.18 10:27
Оценка:
Здравствуйте, Vladimir, Вы писали:

V>Подскажите, как организовать программу и компиляцию, чтобы точка входа в программу находилась в библиотеке, как в MFC. В приложении MFC точка входа в программу находится где-то в недрах MFC!

V>(Т.е. в решении есть два проекта: исполняемый exe и статическая библиотека lib. Точку входа хочу поместить в lib. Возможно ли это?)
V>VS2015, Win7
++ кэповский ответ: компоновщик->дополнительно->точка входа (linker->advanced->entry point) -- не подходит?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.