Здравствуйте, гость ( Вход | Регистрация )
NordWest | Дата 22.4.2009, 13:14 |
НУ ладно давай разбераться по пункта. ... сделай ТАК!
в объявлении функции и будет тебу счастие ... Ну вот, программа заработала. При этом не понятно что случилось и что собственно помогло... В общем, я попытался воспользоваться советом уважаемого майского насекомого. убрать звездочку из ffopen явно мало. Потому как сама fits_open_file связана define'ом с функцией ffopentest в файле longname.h:
Т.е. этот двойной указатель передается ей, а уже она вызывает ffopen(): Раскрывающийся текст
Получается чтобы поменять заголовок как в совете, нужно не только изменить сам ffopen, но и ffopentest и ещё все процедуры, которые вызывают данные функции с двойным указателем. Это мне и выдал make, когда я заменил вызов у себя и пересобирал библиотеку. Поэтому я возвернул всё назад. Пересобрал библиотеку и свой проект и о чудо!.. Помимо этих действий, я также скачал новую версию библиотеки, переустановил её в /usr/local а не /usr/local/bin как ранее и забросил в папку, откуда подключаю fitsio.h и longname.h ещё и drvsmem.h и fitsio2.h, которые также создаются при сборке и на которые я раньше внимания вообще не обращал. Т.е. возможно была какая-то путаница версий, либо я криво установил библиотеку... Либо ещё что. Главное теперь всё работает и более того - по сравнению с виндой приложение теперь летает В любом случае, всем спасибо за помощь и участие! И приношу свои извинения за нецелевое использование консультационных ресурсов форума. |
|
ЙаМайскЫйПчОЛ | Дата 22.4.2009, 8:09 |
НУ ладно давай разбераться по пункта. Я на 87% уверен что проблемма в первом аргументе либо в его типе либо в объявлении функции Эта уверенность инстинктивная + основное что мне приходилось править при переводе приложения на линь - это ссылки и указатели. В Твоем случае я вижу что мы имеем дело с FITS немного погуглив
обрати внимание на первую строчку кода и вызов ffmahd ИМХО такое объявление отличается от твоего на одну * контрол-ц контрол-в из MSDN и готовых сырцов часто приводит к непониманию сделай ТАК!
в объявлении функции и будет тебу счастие а примеров подобного рода куча http://astro.phys.au.dk/ai43/toar/io/MOMF/...itsio/putcoll.c |
|
NordWest | Дата 22.4.2009, 0:43 |
В смысле fits_open_file и ffopen???????????????77 Одно и то же:
fitsfile *fptr;//pointer ot FITSfile ты уверен что под него не надо память выделять??? В примерах не нужно было, и в винде думаю это также проявилось бы. В описалове ещё что-то говориться о "Shared memory files", но пока не разберусь к чему это они. fits_open_file(fptr, qPrintable(fitsFileName) , READONLY, &status); //bkb fits_open_file(fptr, fitsFileName.toAscii().data() , READONLY, &status); Оба варианта результата не дают. |
|
ЙаМайскЫйПчОЛ | Дата 22.4.2009, 0:09 |
всёёёёё мне такой херней еща завтра заниматься........ |
|
igor_bogomolov | Дата 22.4.2009, 0:03 |
NordWest, погоди. Чет я не врубился. Это что, имелось в виду одно и то же fits_open_file(&fptr, fname , READONLY,&status); int ffopen(fitsfile **fptr, const char *filename, int iomode, int *status); В смысле fits_open_file и ffopen???????????????77 |
|
ЙаМайскЫйПчОЛ | Дата 21.4.2009, 23:59 |
да думал поспать лечь, хрен уснеш когда у людей баги при кросплатформизации выявляются | |
igor_bogomolov | Дата 21.4.2009, 23:57 |
[oftop] Так чтож сразу не залогинелся то? С конкретным человеком приятней общаться чем с анонимом [/offtop] |
|
ЙаМайскЫйПчОЛ | Дата 21.4.2009, 23:52 |
ну гдето так))) а то даж залагиниться пришлось))))) |
|
igor_bogomolov | Дата 21.4.2009, 23:50 |
& в переданом значении, даже я не понимаю чего ты хочешь +1
|
|
Гость | Дата 21.4.2009, 23:46 |
я имелл в виду fptr=0x987b8e0 выбивается из контектста адресов выделеной памяти | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 11.12.2024, 22:53 |