Render.ru

to VladimirMonahov

#1
Попробовал скомпилить пример menger.c с www.affine.org, опять тоже:
--------------------Configuration: menger - Win32 Debug--------------------
Compiling...
menger.c
Linking...
Creating library Debug/menger.lib and object Debug/menger.exp
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/menger.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
menger.exe - 2 error(s), 0 warning(s)

Сорри за непонятливость. Буду очень благодарен, если скажете по действиям как это у Вас скомпилилось, по шагам.
 
#2
1. А ribbtree у Вас скомпилилось? Для компиляции Ribtree нужен хедер ripriv.h из Affine Toolkit, а я забыл Вам его кинуть.

2. Если ribtree.c Вы можете просто открыть в Visual Studio и скомпилить его просто как консольное приложение, то для menger.c вы должны создать проект Win32 Dynamic-Link Library.

4. В Tools->Options->Directories у Вас должны быть прописаны пути:
C:\Pixar\prman-10.0\include
C:\Pixar\prman-10.0\lib
C:\affine0008\include (для ribtree, для menger не надо)
в соответствующих местах (library files, include files...)

В Project->Settings->Link->Obect/Library modules добавьте prman.lib

5. Для компиляции menger совершаем следующие действия:
New->Projects->Win32 Dynamic-Link Library->Empty DLL Project

Project->Add To Project->Files->menger.c

Build->Build menger.dll
 
#4
Не merger - meNger.

Google как всегда спасает отцов русской демократии :))

http://www.affine.org/menger.html
http://www.affine.org/mengerDSO.html

Вот ещё оный:

http://multimedia.polito.it/carotti/Projects.html
 
#5
Радостно: mergen.dll скомпилировалось, оно и не могло не скомпилироваться, судя по такой подробной инструкции. Спасибо.

Но все же, тупить, так тупить до конца.
Я, конечно, прочитаю www.affine.org до конца, но можно несколько слов на русском о том, что такое affine toolkit и для чего это нужно.

Как получить ту картинку с квадратиками?
Вроде бы надо ехе файл получить, чтоб направить его в stdin prman-а?
 
#6
Если под картинкой с квадратиками Вы подразумеваете http://www.affine.org/figuremenger6.JPG, то для получения оной в конце странички http://www.affine.org/mengerDSO.html#menger.rib есть menger.rib, который следует скормить prman'у, заменив в нём menger.so на menger.dll (предварительно положите menger.dll туда же, где будет лежать menger.rib)
 
#7
Да, все так.
Запустился prman, окошко для отображениея картинок (iv по-моему). После, примерно, 10 секунд раздумий, видноус 2к выдает не картинку, а окошко с обычным собщением ошибки:

--------------------------------------------------------------
The instruction at "0x0040800f" referenced memory at "0x00000010". The memory couldnt be "written".

Click on OK to terminate the program
Click on CANCEL to debug the program

OK Cancel
--------------------------------------------------------------
Набивать подробно мен не лень :))), просто оч. хочется разобраться.
По-моему он написал, о том, что не смог выполнить команду запись в ячейку, на которую ссылка в ячейке с instruction. Ну да ладно.
Скажите, а у вас такие же проблемы были? Есть ли идеи, из-за чего такая фигня и как поправить?
Можно ли примеры из компаньона делать таким же макаром?

Вот мои действия:
1. Включаю msvc.
2. New->Projects->Win32 Dynamic-Link Library->Empty DLL Project
3. Project->Add To Project->Files->menger.c
4. Build->Build menger.dll
5. В menger.rib изменяю so на dll.
6. Применяю prman.exe к файлу menger.rib
 
#8
Я отравил Вам по почте скомпилированный мною и проверенный menger.dll и menger.rib. Если оно не сработает, тогда, думаю, что-то криво у Вас в системе.

> Можно ли примеры из компаньона делать
> таким же макаром?

Я не помню, что было в примерах из RC.
Когда то их слил, посмотрел, но компилить не стал, а потом куда-то спрятал, найти не могу.

Если будет на неделе время, солью ещё раз, посмотрю.
 
#9
вроде нашел ошибку (слишком много и не тех библиотек подключал).
Огромное спасибо!
Теперь все компилится. Компаньон компилиться и в *.exe и в *.dll. По моему его все-таки в длл надо (точно не знаю от неграмонтости).
Пока пытаюсь компаньонский dll из риба правильно вызвать.
 
Сверху