Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Dec 11, 2019 10:06 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 231 posts ]  Go to page Previous 13 4 5 6 716 Next
Author Message
 Post subject:
PostPosted: Sat Sep 23, 2006 2:23 pm 
Offline

Joined: Mon Apr 10, 2006 7:22 am
Posts: 76
Code:
#define NULL ((void*)0)

Code:
void ogg_demo(void)
{
   fogg=fopen(sz_open_file,"rb");
   if(fogg==NULL)
      return;
   fclose(fogg);
}

В эмуляторе этот кусок вылетает, хотя скомпилировалось нормально, похоже ошибку вызывает fopen.


Top
   
 Post subject:
PostPosted: Sat Sep 23, 2006 2:50 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Для той версии fopen,которая в melibc.a надо аогументы передавать таk:

fogg=fopen(sz_open_file,'rb');

'rb' в апострофах ,а не в кавычках(хотя в правильном варианте надо в кавычках).


Top
   
 Post subject:
PostPosted: Sat Sep 23, 2006 3:07 pm 
andrew_programmer
Почему это в апострофах? Нужно передавать в кавычках.
Проблема оказалась в другом - почему-то cc1.exe при компиляции преобразует имена внешних функций из malloc в _malloc@4. С подчеркиванием я бороться научился, а вот что делать с @4 - не понятно. Из-за этого программа не линкуется :(


Top
   
 Post subject:
PostPosted: Sat Sep 23, 2006 3:20 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Я пробовал передавать и в кавычках и в опострафах.Если передавать в кавычках,то программа вырубается мгновенно.

Андрей,что-то не понял,что за cc1.exe ?
Где malloc преобразуется ?


Top
   
 Post subject:
PostPosted: Sat Sep 23, 2006 5:04 pm 
Сделал кое-какие исправления. Новый melibc.a можно скачать по адресу http://shade.msu.ru/~msu-se/melibc.rar
Новый metcc.exe можно скачать по адресу http://shade.msu.ru/~msu-se/metcc.rar
Новый mesys.h можно скачать с svn сервера.


Top
   
 Post subject:
PostPosted: Sat Sep 23, 2006 5:05 pm 
Программа мгновенно вырубалась из-за ошибки линковки.
сс1.exe - компилятор си (gcc), который используется при компиляции стандартной библиотеки.


Top
   
 Post subject:
PostPosted: Sat Sep 23, 2006 6:06 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Можно этот mesys.h выложить прямо здесь(ввиде текста) ?

Возможно из-за отсутствия нового mesys.h комбинация

f=fopen(filename,"r");
close(f);

пока не работает.


P.S.
Мне ОЧЕНЬ нужно,чтобы в metcc можно было работать с файлами.Я пишу одну научную программу под Колибри,используя metcc и KlbinWin.


Top
   
 Post subject:
PostPosted: Sat Sep 23, 2006 6:17 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
А ещё желательно переписывание библиотеки на новую 70-ю функцию.


Top
   
 Post subject:
PostPosted: Sat Sep 23, 2006 6:51 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
andrew_programmer
Если не обязательно использовать ANSI fopen() fread() то возьми код, который я приводил выше, запиши в файл k_file.asm скомпилируй ФАСМом. Файл линкуется при компиляции программы metcc.exe my_prog.c melibc.a k_file.o -o my_prog
Если качал исходники ядра то в папке /ac97 переписанный на Си плеер и k_lib.asm с оболочками для системных вызовов.
make.bat - пример компиляции из нескольких файлов.


Top
   
 Post subject:
PostPosted: Sat Sep 23, 2006 7:22 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Serge

Попробую поэкспериментировать.


Top
   
 Post subject:
PostPosted: Sun Sep 24, 2006 9:59 am 
Offline

Joined: Mon Apr 10, 2006 7:22 am
Posts: 76
а где этот svn сервер?


Top
   
 Post subject:
PostPosted: Sun Sep 24, 2006 10:29 am 
O01eg
svn://kolibrios.org
andrew_programmer
В mesys.h нужно удалить атрибут stdcall у процедур malloc, free, realloc.
Можешь все-таки выслать или выложить весь код - чтобы не устранять ошибки по одной.
Serge
Я нашел в компиляторе огромную проблему - раньше неправильно компилился код
Code:
int x[10];
int main()
{
  x[0]=0;//на выходе будет присвоение нулевому адресу :(
  return 0;
}

Почему-то компилятор символам из BSS присваивает какой-то очень странный номер секции, из-за чего моя процедура линковки, не найдя такой секции, не применяла соотвествующий релокейшен. На данный момент я поставил, что если у символа очень странный номер секции, то он из BSS. Но с проблемой надо разбираться...


Top
   
 Post subject:
PostPosted: Sun Sep 24, 2006 10:48 am 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
halyavin

Код работающий с файлом я уже выкладывал выше.А вызывается эта функция из main() так:

int main(......)
{

int length_spektr;

length_spektr=LoadSpektor("/hd/1/spc.dat");

}

Где spc.dat - текстовый файл со спектром.Как я говорил выше,в Линукс у меня LoadSpektr() нормально работает.

Вся остальная часть кода к файлам не имеет никакого отношения.


Top
   
 Post subject:
PostPosted: Sun Sep 24, 2006 10:55 am 
Offline

Joined: Mon Apr 10, 2006 7:22 am
Posts: 76
И чем svn:// открывать? А нельзя ли выложить mesys.h где нибудь на HTTP или FTP?


Top
   
 Post subject:
PostPosted: Sun Sep 24, 2006 11:00 am 
Offline
User avatar

Joined: Fri Jan 27, 2006 3:06 pm
Posts: 1071
http://subversion.tigris.org/project_packages.html - версии svn-клиентов для разных ОС


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 231 posts ]  Go to page Previous 13 4 5 6 716 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited