forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   PureBasic (http://forum.boolean.name/forumdisplay.php?f=90)
-   -   Как экспортировать функции из EXE? (http://forum.boolean.name/showthread.php?t=4917)

Prof. BiG BanG 02.11.2007 16:37

Как экспортировать функции из EXE?
 
Во многих языках программирования можно экспортировать функции из exe-файла (то есть другая программа может вызывать эти функции как из DLL), к сожалению, не нашёл подобного в PureBasic. Может кто-то сталкивался с этим?

jimon 02.11.2007 16:46

Re: Как экспортировать функции из EXE?
 
по идее так же как и в DLL

Prof. BiG BanG 02.11.2007 16:57

Re: Как экспортировать функции из EXE?
 
Цитата:

Сообщение от jimon
по идее так же как и в DLL

пробую в exe делать так же как в dll

Код:

MessageRequester("In Exe","Inside exe file")
ProcedureDLL MyFunction()
    MessageRequester("In EXE", "MyFunction()", 0)
EndProcedure

Сообщение "Inside exe file" показывает,
но функция не экспортируется...

Chrono Syndrome 02.11.2007 17:01

Re: Как экспортировать функции из EXE?
 
Цитата:

Сообщение от jimon
по идее так же как и в DLL

Не сработает.

Platon 02.11.2007 17:22

Re: Как экспортировать функции из EXE?
 
Цитата:

Сообщение от Prof. BiG BanG
Во многих языках программирования можно экспортировать функции из exe-файла (то есть другая программа может вызывать эти функции как из DLL), к сожалению, не нашёл подобного в PureBasic. Может кто-то сталкивался с этим?

Где это ты такое видел? Это вообще не возможно, кроме как дизассемблинга, но это уже не экспорт.
Исполняемый модуль от библиотеки отличается как раз тем что у него нет секции экспорта (и не только).

Prof. BiG BanG 02.11.2007 17:35

Re: Как экспортировать функции из EXE?
 
Цитата:

Сообщение от Cyan
Где это ты такое видел?

Сам видел такое в некоторых программах (пример: BlackBox for windows )

Цитата:

Сообщение от Cyan
Это вообще не возможно, кроме как дизассемблинга, но это уже не экспорт.

Кажется, всё-таки возможно
В PowerBasic это делается вроде так:

Код:

FUNCTION ShowMyDialog ALIAS "ShowMyDialog"() EXPORT AS LONG
    DIALOG SHOW STATE hDlg, %SW_RESTORE
END FUNCTION

(http://www.powerbasic.com/support/pb...ad.php?t=35052)

Про дизассемблинг не понял - при чём здесь экспорт функций?

rodego 10.01.2008 15:50

Re: Как экспортировать функции из EXE?
 
Ехе файл сам по себе имеет такую структуру, что вызвать его функции как из длл нельзя. Я на 99% уверен, что то, что Вы видели лишь склееная дллка с ехе-шником. Нечто подобное генерирует и даркбейсик.

kvitaliy 10.01.2008 21:01

Re: Как экспортировать функции из EXE?
 
Для Делфи, но многое обьясняет!
Цитата:

В DPR файле совершенно обычного проэкта дельфи можно указать функцию (процедуру) и объявить ее как
экспортируемую - синтаксис точно такой-же как при создании стандартной DLL. С таким довеском EXE совершенно
нормально компиллируется и работает и как EXE и как DLL (т.е. из нее можно импортировать описанные функции).
Зачем это нужно? Была одна задача - делал консоль которая связывала воедино несколько приложений, так экспортные
функции позволяли существенно расширять функциональность комплекса. Правда такой EXE все же имеет недостаток - EXE
упаковщики сохраняют исполняемую часть и неправильно упаковывают экспортированную...
Т.о. файл ехе изначально должен быть написан определенным образом. Можно попробывать и на PB так написать экзешник с ProcedureDLL


Часовой пояс GMT +4, время: 05:23.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot