@persiks

Как подключить файл?

Я не хочу допускть срачь в коде , так что я раскидал его по разным файлам. У меня есть dll main файл а котором будет запуск кода. Как указать путь к файлу что бы он выполнялся при запуске BOOL WINAPI Main(HMODULE hmodule)
#include"Header.h"
BOOL WINAPI Main(HMODULE hmodule)
{

// как указать путь к файлу что бы он выполнялся при инжекте dll
	
}
BOOL APIENTRY DllMain(HMODULE, DWORD Attach, LPVOID IpReserved)
{
	switch (Attach)
	{
	case DLL_PROCESS_ATTACH:
		CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Main, 0, 0, 0);
	case DLL_PROCESS_DETACH:
		break;
	}
	return TRUE;
}
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 2
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
По идее надо оформить код в файле в функцию и вызывать ее там где вам надо.

В хедере вы декларируете функцию и включаете этот хедер в начало вашего С++ файла, приведенного в вопросе.
Другой С++ файл будет реализовывать функцию (и тоже включать хедер). Потом какая-то система сборки или IDE скомпилирует оба файла и соберет из получившихся объектных файлов одну dll-ку. Или вы руками скомпилируете каждый из двух C++ файлов и потом отдельным вызовом слинкуете все.

Вы, видимо, предполагаете просто тупо написать код функции в файле и включить его в тело функции через #include. Вообще говоря, это даже скомпилируется, но это такой лютый говнокод получается, что так делать никогда и ни при каких обстоятельствах нельзя. Сообщения об ошибках будут со съехавшими номерами строк, сам файл с кодом будет некорректным С++ кодом, поэтому любой редактор не сможет вам ни подстветить его, ни понять какие там есть штуки, чтобы показывать их вам в подсказках. Такой подход не обобщается на более чем пару файлов - вы потом сами запутаетесь что где и куда включено.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Тут нужно акцент не на С++ делать а на то что разработка ведется для Windows. Тегнул топик.

Вот ссылочка на DLL-linked ordering. Может будет полезна

https://docs.microsoft.com/en-us/windows/win32/dll...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы