Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

DOS - приложения   Найти похожие ветки 

 
Johny ©   (2006-12-26 10:46) [0]

Подскажите как добавить в проект скампилированное DOS приложение?


 
Сергей М. ©   (2006-12-26 10:49) [1]

Project->Add to project..->скампилированное DOS приложение


 
Johny ©   (2006-12-26 10:54) [2]

не получается, пишет "One or more lines were too long and have been truncated"


 
Сергей М. ©   (2006-12-26 11:20) [3]

А что вообще должно было "получиться" по-твоему ?


 
Elen ©   (2006-12-26 11:33) [4]


> Подскажите как добавить в проект скампилированное DOS приложение?

Для того чтоб потом ее запустить из твоей проги?


 
Johny ©   (2006-12-26 11:45) [5]

Да!


 
alex_*** ©   (2006-12-26 11:51) [6]

чтоб запустить добавлять ничего не надо


 
Сергей М. ©   (2006-12-26 11:52) [7]

Создаешь текстовый файл DOSAPP.RC со след.содержимым:

MyDosApp RT_RCDATA MyDosApp.exe

и это rc-файл к проекту (см. [1])


 
alex_*** ©   (2006-12-26 11:59) [8]


> оздаешь текстовый файл DOSAPP.RC со след.содержимым:
>
> MyDosApp RT_RCDATA MyDosApp.exe
>
> и это rc-файл к проекту (см. [1])
>

след. вопрос будет как это теперь запустить :)


 
Elen ©   (2006-12-26 12:01) [9]


> Johny ©   (26.12.06 11:45) [5]
>
> Да!

... Если [7] у тебя не покатит, просто положи ДОС-прогу рядом с экзешником твоей проги и запускай его WinExec(<Тот_самый_ДОС_проект>,0)


 
Johny ©   (2006-12-26 21:01) [10]


> ... Если [7] у тебя не покатит, просто положи ДОС-прогу
> рядом с экзешником твоей проги и запускай его WinExec(<Тот_самый_ДОС_проект>,
> 0)

Именно так я и сделал! Но это меня не устраивает. Меня больше интересует вариант с RC. Но пока не получается написать функцию вызова.


 
Palladin ©   (2006-12-26 21:15) [11]

интересно, а как ты пробовал...


 
Johny ©   (2006-12-26 22:20) [12]

Да здесь я уже разобрался, всё работает.
А получилось вот что:

RC.файл > имя EXEFILE D:\нужная прога\её имя.exe

компилирую brcc32.exe;
получается имя.res;
потом код в проге >

{$R имя.res}

procedure ExtractRes(exefile, стар.имя, нов.имя : String);
var
 Res : TResourceStream;
begin
 Res := TResourceStream.Create(Hinstance, стар.имя, Pchar(exefile));
 Res.SavetoFile(нов.имя);
 Res.Free;
end;
потом вызов > ExtractRes("exefile", "стар.имя", "нов.exe");

Но оно только капирует ехе-файл в директорию с прогой и переименновывает её. А мне надо что бы этот ехе-файл при кампиляции оставался внутри моей проги.
.


 
Virgo_Style ©   (2006-12-26 22:35) [13]

Johny ©   (26.12.06 22:20) [12]
что такое кампиляция


 
ors_archangel ©   (2006-12-27 01:23) [14]


> Но оно только капирует ехе-файл в директорию с прогой и
> переименновывает её. А мне надо что бы этот ехе-файл при
> кампиляции оставался внутри моей проги.

Разве этого не происходит вследствие {$R имя.res}? Этой директивой скомпилированный rc (то бишь res) линкуется к исполняемому файлу, т.о. и DOS-программа намертво линкуется к программе при кампиляции… Или нет?


 
Ученик чародея ©   (2006-12-27 02:05) [15]


> Johny ©   (26.12.06 22:20) [12]
>
> Да здесь я уже разобрался, всё работает.
> А получилось вот что:
>
> RC.файл > имя EXEFILE D:\нужная прога\её имя.exe
>
> компилирую brcc32.exe;
> получается имя.res;
> потом код в проге >
>
> {$R имя.res}
>
> procedure ExtractRes(exefile, стар.имя, нов.имя : String);
>
> var
>  Res : TResourceStream;
> begin
>  Res := TResourceStream.Create(Hinstance, стар.имя, Pchar(exefile));
>
>  Res.SavetoFile(нов.имя);
>  Res.Free;
> end;
> потом вызов > ExtractRes("exefile", "стар.имя", "нов.exe");
>
>
> Но оно только капирует ехе-файл в директорию с прогой и
> переименновывает её. А мне надо что бы этот ехе-файл при
> кампиляции оставался внутри моей проги.


Только тебе всего лишь системный загрузчик свой написать нужно. Для на год-полтора работы. Оно тебе надо? Хотя при успешном выполнении знаний прибавится.


 
Elen ©   (2006-12-27 07:41) [16]


> Johny

Слушай, да ты не как протектор пишеш? Чего б не взять уже готовые?


 
Johny ©   (2006-12-27 08:48) [17]

Просто у меня есть готовый DOS файлик который я хочу поместить в свою прогу! Только и вего. Можно поместить его инсталлсшелд и он будет капироватся при установке в папку с программой как утелита, но это слишком просто. Если писать rc. то нужно что бы он присутсвовал на компе, но на чужом компе его не будет и значит нет смысла морочится. Можно переписать его исходник во внутрь программы, и это уже не будет отдельный файл.

> Слушай, да ты не как протектор пишеш? Чего б не взять уже
> готовые?


А здесь по подробней если можно, я не совсем в курсе.


 
Elen ©   (2006-12-27 08:57) [18]


> А здесь по подробней если можно, я не совсем в курсе.

Протектор - нечто среднее между инсталятором и пакером. Содержит внутри себя программу(ы) и выполняет их из своей базы, загружая прямо в память. Если тебе это надо то в Инете их навалом. Да и в гугле можно литературу посмотреть для особо-рукодельничающих.



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.193 c
15-1166603244
alexandr
2006-12-20 11:27
2007.01.14
подскажите компонент


2-1166679541
Action
2006-12-21 08:39
2007.01.14
Интересный вопрос. Создаю компонент на основе TPanel


2-1167114623
wooow1
2006-12-26 09:30
2007.01.14
string &amp;&amp; array of Char


4-1156734921
tar4
2006-08-28 07:15
2007.01.14
обращение к отладочным регистрам


1-1164102536
DelphiLexx
2006-11-21 12:48
2007.01.14
TTreeView определить стоит ли курсор на корне дерева