Page 25 of 77
Re: Помогите новичку
Posted: Mon Dec 19, 2011 8:15 pm
by SoUrcerer
Собственно, переключать можно автоматически. Скажем, если оперативки больше 32 Мб - то видео отрисовывается в памяти. Если меньше - то выводится предупреждение, мол, свистелки отключены.
Re: Помогите новичку
Posted: Mon Dec 19, 2011 8:37 pm
by Mario
32 мало так и на приложения хрен останется, лучше при 64, а лучше вообще вручную - пользователю видней.
Re: Помогите новичку
Posted: Sun Dec 25, 2011 4:08 pm
by z525
1. В Колибри 0.7.7.0 есть две похожие программы
Spoiler:

-
openfile.png (14.42 KiB)
Viewed 4445 times
Исходники к Open File я найти не смог. Не подскажите где искать? На SVN есть исходники Opendialog, это эта программа?
2.Файлы с окончанием .mac для чего, где используются?
Re: Помогите новичку
Posted: Sun Dec 25, 2011 4:27 pm
by SoUrcerer
Open File - это диалоговое окно на основе X-tree. X-tree является устаревшей программой, как и диалог Opne file на базе X-tree. Вместо него следует использовать Opendialog. Примеры использования - например, tinypad.
Re: Помогите новичку
Posted: Sun Dec 25, 2011 5:41 pm
by z525
SoUrcerer wrote:Open File - это диалоговое окно на основе X-tree. X-tree является устаревшей программой, как и диалог Opne file на базе X-tree. Вместо него следует использовать Opendialog. Примеры использования - например, tinypad.
Всеравно хотелось бы на исходники посмотреть. Считаю что до тех пор пока программа работает, она может пригодиться кому-нибудь чем-нибудь. Просьба подсказать где ее последний исходник.
SoUrcerer wrote: Вместо него следует использовать Opendialog. Примеры использования - например, tinypad.
В tinypad? В том что в Колибри 0.7.7.0 эта функция есть? Для того чтобы открыть файл например появляеться только строчка для ввода внизу. Это и есть тот самый Opendialog?
Наверное нет но вопрос оставлю
Хотел скомпилировать tinypad с SVN но выходит ошибка
Spoiler:

-
error.png (5.88 KiB)
Viewed 4432 times
Re: Помогите новичку
Posted: Sun Dec 25, 2011 7:39 pm
by IgorA
z525 wrote:2.Файлы с окончанием .mac для чего, где используются?
Это файлы в которых находятся макросы. Хотя в них может находится и обычный код.
z525 wrote:Хотел скомпилировать tinypad с SVN но выходит ошибка
Скорее всего не подключен какой либо файл с макросом.
illegal instruction - не легальная инструкция. Проблема с макросом header, потому что это не слово fasm.
z525 wrote:В tinypad? В том что в Колибри 0.7.7.0 эта функция есть? Для того чтобы открыть файл например появляеться только строчка для ввода внизу. Это и есть тот самый Opendialog?
Колибри 0.7.7.0 сильно устарела, потому в ней у
tinypad еще нет
Opendialog - а. Посмотри на вики :
http://wiki.kolibrios.org/wiki/OpenDialog/ru
Последний образ системы можно загрузить здесь :
http://builds.kolibrios.org/rus/
Исходники
xtree можно посмотреть здесь :
http://websvn.kolibrios.org/filedetails ... sxtree.asm
Если у тебя есть svn, то посмотри их в папке
(root)/programs/fs/sysxtree/trunk/
SysFn70 Подфункция 5 - получение информации о файле/папке
Posted: Sun Jan 01, 2012 3:17 pm
by 0CodErr
Вопрос про функцию 70, подфункцию 5.
В Wiki написано:
«Функция не поддерживает виртуальные папки типа /, /rd и корневые папки типа /rd/1.»
Это имеется в виду, что нельзя получить информацию только конкретно о таких папках?
Я пытался получить информацию о файле на рамдиске, и эта функция прекрасно работает.
То есть, если файл находится в виртуальной или корневой папке, то о нём информацию получить можно?
Re: Помогите новичку
Posted: Sun Jan 01, 2012 8:18 pm
by Mario
Информацию следует читать как есть, а не домысливать то чего нету. Раз сказано что нельзя читать информацию о самих виртуальных директориях, то причем тут информация о физических файлах, которые в них перечислены? Конкретные пути же указаны - написав их в качестве параметра:
* +20 = +0x14: ASCIIZ-имя файла, правила формирования имён указаны в
общем описании
или
* +20 = +0x14: db 0
* +21 = +0x15: dd указатель на ASCIIZ-строку с именем файла
К примеру:
db '/',0
db '/rd',0
db '/rd/X',0
db '/hdX',0
db /hdX/Y',0
db '/fd',0
db '/fd/X',0
db '/cdX',0
db '/cdX/Y',0
db '/bdX',0
db '/bdX/Y',0
где: Y номер раздела, X номер устройства
НЕЛЬЗЯ получить информацию. В остальных случаях, представляющих собой работу с физическими файлами и директориями, можно получать информацию.
Re: Помогите новичку
Posted: Sat Jan 07, 2012 12:25 pm
by Leency
Code: Select all
/* было, я переписал наново
union sProcessInfo
{
Byte rawData[1024];
struct
{
Dword cpu_usage;
Word window_stack_position;
Word window_stack_value;
Word reserved1;
char process_name[12];
Dword memory_start;
Dword used_memory;
Dword PID;
Dword x_start;
Dword y_start;
Dword x_size;
Dword y_size;
Word slot_state;
} processInfo;
};*/
union sProcessInfo
{
Byte rawData[1024];
struct
{
Dword cpu_usage;
Word window_stack_position;
Word window_stack_value;
Word reserved1;
char process_name[12];
char rezerv2;
Dword memory_start;
Dword used_memory;
Dword PID;
Dword x_start;
Dword y_start;
Dword x_size;
Dword y_size;
Word slot_state;
Word rezerv3;
Dword work_left;
Dword work_top;
Dword work_width;
Dword work_height;
char status_window;
Byte reserved[1024-71];
} processInfo;
};
// функция 9 - информация о процессе
Dword kos_ProcessInfo( sProcessInfo *targetPtr, Dword processID )
{
// Dword result;
//
__asm{
mov eax, 9
mov ebx, targetPtr
mov ecx, processID
int 0x40
}
}
kos_ProcessInfo( &sPI);
sPI.processInfo.cpu_usage = 0 и вообще любой показатель =0. Почему? Где ошибка?
Re: Помогите новичку
Posted: Sat Jan 07, 2012 12:32 pm
by SoUrcerer
Leency wrote:Code: Select all
/* было, я переписал наново
union sProcessInfo
{
Byte rawData[1024];
struct
{
Dword cpu_usage;
Word window_stack_position;
Word window_stack_value;
Word reserved1;
char process_name[12];
Dword memory_start;
Dword used_memory;
Dword PID;
Dword x_start;
Dword y_start;
Dword x_size;
Dword y_size;
Word slot_state;
} processInfo;
};*/
union sProcessInfo
{
Byte rawData[1024];
struct
{
Dword cpu_usage;
Word window_stack_position;
Word window_stack_value;
Word reserved1;
char process_name[12];
char rezerv2;
Dword memory_start;
Dword used_memory;
Dword PID;
Dword x_start;
Dword y_start;
Dword x_size;
Dword y_size;
Word slot_state;
Word rezerv3;
Dword work_left;
Dword work_top;
Dword work_width;
Dword work_height;
char status_window;
Byte reserved[1024-71];
} processInfo;
};
// функция 9 - информация о процессе
Dword kos_ProcessInfo( sProcessInfo *targetPtr, Dword processID )
{
// Dword result;
//
__asm{
mov eax, 9
mov ebx, targetPtr
mov ecx, processID
int 0x40
}
}
kos_ProcessInfo( &sPI);
sPI.processInfo.cpu_usage = 0 и вообще любой показатель =0. Почему? Где ошибка?
Попробуй передавать не просто указатель на структуру, а указатель на структуру как именно на массив байт (т.е. явно укажи тип при передаче). Вообще не уверен, что все будет именно так со структурами в юнионах.
Re: Помогите новичку
Posted: Sat Jan 07, 2012 12:38 pm
by mike.dld
А почему функция объявлена с двумя параметрами, а ты передаёшь только один?..
Re: Помогите новичку
Posted: Sat Jan 07, 2012 12:46 pm
by Leency
Там где-то вначале ещё есть.
Dword kos_ProcessInfo( sProcessInfo *targetPtr, Dword processID = PROCESS_ID_SELF );
#define PROCESS_ID_SELF -1
SoUrcerer
Это как байт массив? Может там вообще юнионы не надо?
Re: Помогите новичку
Posted: Sat Jan 07, 2012 5:31 pm
by Serge
#pragma pack(push, 1) или __attribute__((packed)) не забыли ?
Re: Помогите новичку
Posted: Sat Jan 07, 2012 5:36 pm
by SoUrcerer
Мне так кажется, что это C--. Или мне кажется?
Re: Помогите новичку
Posted: Sat Jan 07, 2012 7:58 pm
by Leency
Это MSVC, а именно Косилка, если уж никто не может поправить, то приходится мне.
Где юзать #pragma pack(push, 1) или __attribute__((packed)) и что лучше?