Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

   #26
27.11.2009 13:07

ASBer
Модератор (+152, -17)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 817
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Спрашивайте, - отвечаем!

noname написал:

отсюда вопрос: как прикрутить tom.dll к моей проге?

На Си я это делаю так:

Глобальные переменные:

Код:

//переменные для текстового движка
HINSTANCE EngineDll;
typedef char*(*EngineFn)(char*);
EngineFn RunFile=0;
EngineFn RunText=0;
EngineFn Command=0;
EngineFn NormText=0;

При старте программы:

Код:

  //загружаем движок
  EngineDll=GetModuleHandle("tom.dll");
  if(!EngineDll) EngineDll=LoadLibrary("tom.dll");
  if(!EngineDll)
  { PutStr("<font color=red>Не удалось загрузить tom.dll!\n<pause>");
    return 0;
  }
  //получаем функции
  RunFile=(EngineFn)GetProcAddress(EngineDll,"@RunFile$qpc");
  RunText=(EngineFn)GetProcAddress(EngineDll,"@RunText$qpc");
  Command=(EngineFn)GetProcAddress(EngineDll,"@Command$qpc");
  NormText=(EngineFn)GetProcAddress(EngineDll,"@NormText$qpc");

  if(!RunFile||!RunText||!Command||!NormText)
  { PutStr("<font color=red>Не найдены функции tom.dll!\n<pause>");
    return 0;
  }

в процессе:

Код:

char*Str=Command(input);

при закрытии программы:

Код:

  //освобождаем движок
  FreeLibrary(EngineDll);

GetModuleHandle(), LoadLibrary(), GetProcAddress(), FreeLibrary() - функции WinAPI.

На паскале никогда не писал, тут я не помощник... hmm


Прикрепленные файлы:
constom.cpp, Размер: 9,524 байт, Скачано: 371

Неактивен

   #27
27.11.2009 13:42

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Спрашивайте, - отвечаем!

с сями я тоже немного знаком. попробую разобраться.

ты вот что скажи- на борландовском билдере то, что ты написал, будет работать?

Неактивен

   #28
27.11.2009 14:17

ASBer
Модератор (+152, -17)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 817
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Спрашивайте, - отвечаем!

noname написал:

ты вот что скажи- на борландовском билдере то, что ты написал, будет работать?

Будет. На нём и написано.

Неактивен

Powered by PunBB
© copyright 2001–2018 iFiction.Ru