Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 19

Dll и EntryPoint

13.02.2022, 15:52. Показов 2688. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь перевести программу в dll.
Запускаю rundll32.exe win.dll,exec
Если делать

C++
1
2
3
4
5
extern "C" __declspec(dllexport) void exec() {
 
МОЙ КОД.
ExitProcess(0);
}
Работает!
Если попытаться уменьшить размер добавив
C++
1
#pragma comment(linker, "/ENTRY:exec")
То программа запускается но не выполняет своих функций
Просто висит процесс Rundll32 загруженный на 25 процентов.

Добавлено через 22 минуты
Ещё появляется предупреждение при добавлении
C++
1
#pragma comment(linker, "/ENTRY:exec")
C++
1
warning LNK4086: точка входа "_Exec@0" не является __stdcall с аргументами из 12 байт; образ нельзя запустить
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.02.2022, 15:52
Ответы с готовыми решениями:

Изменение EntryPoint в приложении
На что теперь стоит обратить особое внимание? Обычно точка входа в программу выглядит так: int WINAPI WinMain(HINSTANCE hInst,HINSTANCE...

error X3501: 'main': entrypoint not found
Подскажите пожалуйста где допустил ошибку? ОШИБКА Ошибка 1 error X3501: 'main': entrypoint not found C:\Users\ZEF\documents\visual...

Что такое EntryPoint?
Объясните что такое EntryPoint и для чего он нужен? У меня он используется в такой строке static extern void...

2
0 / 0 / 0
Регистрация: 21.04.2021
Сообщений: 19
14.02.2022, 06:03  [ТС]
Объясните почему с
C++
1
#pragma comment(linker, "/ENTRY:exec")
может не работать?
Простой код в виде, работает.

C++
1
2
3
4
extern "C" __declspec(dllexport) void exec() {
MessageBoxA(0, "Hello!", 0, 0);
ExitProcess(0);
}
Но если код большой то виснет.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13179 / 6815 / 1821
Регистрация: 18.10.2014
Сообщений: 17,243
18.02.2022, 07:09
Цитата Сообщение от vurdalaky Посмотреть сообщение
Работает!
Нет, не работает. Функции, вызываемые через rundll32 должны быть __stdcall и иметь параметры (HWND, HINSTANCE, LPSTR, int)

Цитата Сообщение от vurdalaky Посмотреть сообщение
Объясните почему с
C++
1
#pragma comment(linker, "/ENTRY:exec")
может не работать?
Во-первых, каким боком здесь вообще /ENTRY?

Во-вторых, в документации к /ENTRY ясно написано, что это функция должна быть __stdcall и иметь параметры (LPVOID, DWORD, LPVOID). И есть какие-то ограничения на функции, вызываемые из DLL entry point. MessageBox кажется нельзя. DLL entry point для этого не предназначен.

https://docs.microsoft.com/en-... -practices
You should never perform the following tasks from within DllMain:
...
* Call functions in User32.dll or Gdi32.dll. Some functions load another DLL, which may not be initialized.
Цитата Сообщение от vurdalaky Посмотреть сообщение
Если попытаться уменьшить размер
А как это уменьшает размер? Размер чего?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.02.2022, 07:09
Помогаю со студенческими работами здесь

Error X3501: 'main': entrypoint not found
Здраствуйте, собираю asi плагин, и при добавлении файла shader.fx появляется ошибка "error X3501: 'main': entrypoint not found". ...

Ошибка об отсутствии MSVCP140D.dll, ucrtbased.dll, CONCRT140D.dll, VCRUNTIME140D.dll
Добрый день, товарищи. Возникла проблема. Делаю программу с использованием openCV 3.1 на Visual Studio 2013. При компиляции выдает ошибку...

Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями?
Движок перевожу на платформу Win64 и нужно, чтобы разрядность ЕХЕ и DLL совпадали, а в интернете искал 64-битные версии ogg.dll, vorbis.dll...

Затупил, скажите где взять libmysqld.dll, libmysqld50.dll, libmysqld51.dll
Вечер добрый, ставлю ZEOS на Delphi 7, и для нормальной работы нужны файлы libmysqld.dll, libmysqld50.dll, libmysqld51.dll. Но я нигде...

WinAPI находится в windows.h или в DLL (kernel32.dll,user32.dll и т. д)?
Объясните пожалуйста, для чего нужен заголовочный файл windows.h и какое отношение он имеет к DLL (kernel32.dll,user32.dll и т. д). В каком...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru