Помогите новичку
-
Собственно, переключать можно автоматически. Скажем, если оперативки больше 32 Мб - то видео отрисовывается в памяти. Если меньше - то выводится предупреждение, мол, свистелки отключены.
32 мало так и на приложения хрен останется, лучше при 64, а лучше вообще вручную - пользователю видней.
1. В Колибри 0.7.7.0 есть две похожие программы
Исходники к Open File я найти не смог. Не подскажите где искать? На SVN есть исходники Opendialog, это эта программа?
2.Файлы с окончанием .mac для чего, где используются?
Spoiler:
2.Файлы с окончанием .mac для чего, где используются?
Last edited by z525 on Sun Dec 25, 2011 5:20 pm, edited 1 time in total.
Open File - это диалоговое окно на основе X-tree. X-tree является устаревшей программой, как и диалог Opne file на базе X-tree. Вместо него следует использовать Opendialog. Примеры использования - например, tinypad.
Всеравно хотелось бы на исходники посмотреть. Считаю что до тех пор пока программа работает, она может пригодиться кому-нибудь чем-нибудь. Просьба подсказать где ее последний исходник.SoUrcerer wrote:Open File - это диалоговое окно на основе X-tree. X-tree является устаревшей программой, как и диалог Opne file на базе X-tree. Вместо него следует использовать Opendialog. Примеры использования - например, tinypad.
В tinypad? В том что в Колибри 0.7.7.0 эта функция есть? Для того чтобы открыть файл например появляеться только строчка для ввода внизу. Это и есть тот самый Opendialog?SoUrcerer wrote: Вместо него следует использовать Opendialog. Примеры использования - например, tinypad.
Наверное нет но вопрос оставлю
Хотел скомпилировать tinypad с SVN но выходит ошибка
Spoiler:
Это файлы в которых находятся макросы. Хотя в них может находится и обычный код.z525 wrote:2.Файлы с окончанием .mac для чего, где используются?
Скорее всего не подключен какой либо файл с макросом. illegal instruction - не легальная инструкция. Проблема с макросом header, потому что это не слово fasm.z525 wrote:Хотел скомпилировать tinypad с SVN но выходит ошибка
Колибри 0.7.7.0 сильно устарела, потому в ней у tinypad еще нет Opendialog - а. Посмотри на вики :z525 wrote:В tinypad? В том что в Колибри 0.7.7.0 эта функция есть? Для того чтобы открыть файл например появляеться только строчка для ввода внизу. Это и есть тот самый 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/
Вопрос про функцию 70, подфункцию 5.
В Wiki написано:
«Функция не поддерживает виртуальные папки типа /, /rd и корневые папки типа /rd/1.»
Это имеется в виду, что нельзя получить информацию только конкретно о таких папках?
Я пытался получить информацию о файле на рамдиске, и эта функция прекрасно работает.
То есть, если файл находится в виртуальной или корневой папке, то о нём информацию получить можно?
В Wiki написано:
«Функция не поддерживает виртуальные папки типа /, /rd и корневые папки типа /rd/1.»
Это имеется в виду, что нельзя получить информацию только конкретно о таких папках?
Я пытался получить информацию о файле на рамдиске, и эта функция прекрасно работает.
То есть, если файл находится в виртуальной или корневой папке, то о нём информацию получить можно?
Информацию следует читать как есть, а не домысливать то чего нету. Раз сказано что нельзя читать информацию о самих виртуальных директориях, то причем тут информация о физических файлах, которые в них перечислены? Конкретные пути же указаны - написав их в качестве параметра:
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 номер устройства
НЕЛЬЗЯ получить информацию. В остальных случаях, представляющих собой работу с физическими файлами и директориями, можно получать информацию.
К примеру:* +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 номер устройства
НЕЛЬЗЯ получить информацию. В остальных случаях, представляющих собой работу с физическими файлами и директориями, можно получать информацию.
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
}
}
sPI.processInfo.cpu_usage = 0 и вообще любой показатель =0. Почему? Где ошибка?
Из хаоса в космос
Попробуй передавать не просто указатель на структуру, а указатель на структуру как именно на массив байт (т.е. явно укажи тип при передаче). Вообще не уверен, что все будет именно так со структурами в юнионах.Leency wrote:kos_ProcessInfo( &sPI);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 } }
sPI.processInfo.cpu_usage = 0 и вообще любой показатель =0. Почему? Где ошибка?
А почему функция объявлена с двумя параметрами, а ты передаёшь только один?..
in code we trust
Там где-то вначале ещё есть.
Dword kos_ProcessInfo( sProcessInfo *targetPtr, Dword processID = PROCESS_ID_SELF );
#define PROCESS_ID_SELF -1
SoUrcerer
Это как байт массив? Может там вообще юнионы не надо?
Dword kos_ProcessInfo( sProcessInfo *targetPtr, Dword processID = PROCESS_ID_SELF );
#define PROCESS_ID_SELF -1
SoUrcerer
Это как байт массив? Может там вообще юнионы не надо?
Из хаоса в космос
#pragma pack(push, 1) или __attribute__((packed)) не забыли ?
Мне так кажется, что это C--. Или мне кажется?
Это MSVC, а именно Косилка, если уж никто не может поправить, то приходится мне.
Где юзать #pragma pack(push, 1) или __attribute__((packed)) и что лучше?
Где юзать #pragma pack(push, 1) или __attribute__((packed)) и что лучше?
Из хаоса в космос
Who is online
Users browsing this forum: No registered users and 1 guest