Render.ru

Программы с BMRT

#1
Кто нибудь пробовал писать программы с библиотекой libribout.lib.
Я пытаюсь ее скомпилировать в DLL, но при вызове DLL из внешней программы, последняя умирает даже не пискнув.
 
#2
Я пробовал.

А на чем пишешь? Тамошняя версия либа может быть написана на старом ВиСи, проверь.
 
#3
Я пишу вызывающую программу на Delphi. DLL использую именно для того, чтобы создать интерфейс с BMRT . У меня правда сложилось впечатление что проблема в том что BMRT - консольное приложение, а не GUI
 
#5
1. 2 alex - не факт, что правильнее его вызывать, интерфейс для того и сделали, чтобы его юзать - например, при процедурной генерации примитивов.

Другой момент, что такое использование уже несколько устарело и не всегда приветствуется...

2. 2max - я сам на нем, родимом, пишу - и ничего. Правда, я сделал DLL из libslcarg, чтобы параметры шейдеров выдирать.

Мораль такова, что скорее всего ты неправильно сделал DLL - или неправильно его вызвал (например, не сделал процы из DLL фарами). Могу подсказать или просто возьми с моей страницы мои сорцы - там показано, как правильно.
 
#6
Да нет, я не против, теоретически это даже красивее, особенно, если rib получается диких размеров. Но согласись, софт при этом становится привязанным к конкретному рендереру, а если точнее - к конкретной его версии. Правда, если линкование библиоеки не статическое, ситуация все же чуть полегче...
 
#7
У меня сделано вот так...

#define RENDER_API __declspec(dllexport)

RENDER_API RtToken RA_RiDeclare (char *name, char *declaration)
{
return RiDeclare(name,declaration);
}
Плюс еще DEF файл.

Кстати из консоли функции вызываются нормально, во всяком случае ничего не рушится
 
#8
У меня вот так:

char* WINAPI SLCP_GetPath (void)
{
return ::SLC_GetPath();
}

и работает отовсюду.
 
Сверху