|
Модераторы: Daevaorn |
|
neosapient |
|
||||||||
Опытный Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Здравствуйте.
exe-файл и dll-файл похожи наличием PE заголовка. Хочу в exe-файл добавить экспортируемую функцию. А затем через LoadLibrary и GetProcAddress запустить её в другой программе. Но Runtime ругается при выделении памяти: >> Unhandled exception at 0x0001831a in mytest.exe: 0xC0000005: Access violation. Программа пустышка, в которую я добавляю PE заголовок.
А вот и экспортируемая функция. В настроках проекта добавил макроопределение MYLIB_EXPORTS
Вторая программа, которая загружает fnmylib из первой программы, выглядит так.
Успешно загружается LoadLibrary("myapp.exe") Успешно получаю адрес fnmylib и перехожу в неё. При вызове new char [1]; происходит падение программы >> Unhandled exception at 0x0001831a in mytest.exe: 0xC0000005: Access violation. Что делаю не так? |
||||||||
|
|||||||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
exe это не dll, хотя и похожи. Вы можете загрузить exe из другого exe, но исполняться он (загруженный) не будет. И попытки позвать оттуда что либо обречены на неудачу. Что бы exe заработал ему нужен своё собственное адресное пространство, и собственно процесс запуска (у dll он другой, так что точка запуска exe вызвана не будет) |
|||
|
||||
LeonidPr |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Если GetProcAddress нашла функцию, значит экспорт идет без проблем. Проблема в инициализации где-то, т.к. валится на new, ему куча нужна настроенная.
Вот тут как раз об этом же пишут и рассказывают что там не так инициализируется. Т.е. какие-то очень ограниченные функции можно экспортировать но постоянно будете в проблемы упираться. P.S. Там есть ссыль интересная на CodeProject.Но имхо это изврат Это сообщение отредактировал(а) LeonidPr - 2.8.2019, 15:45 --------------------
pkunzip.zip |
|||
|
||||
neosapient |
|
|||
Опытный Профиль Группа: Участник Сообщений: 672 Регистрация: 16.8.2006 Репутация: нет Всего: 4 |
Спасибо.
Жаль, что нет простого решения. |
|||
|
||||
LShadow77 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.10.2011 Репутация: нет Всего: нет |
А вот я всегда задавался вопросом, какой смысл экспортировать что-то из exe-файла?
|
|||
|
||||
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |