IPB

Добро пожаловать, гость ( Вход | Регистрация )

История благодарностей участнику Grom PE ::: Спасибо сказали: 95 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
Sep 11 2008, 14:11 Opera 9.xx
QUOTE(-=CHE@TER=- @ Sep 11 2008, 19:52) [snapback]2228[/snapback]
Может ты просто какую-нибудь кривую конструкцию использовал, раньше её поддерживали, а теперь нет?

Самое смешное, что Опера спотыкается об половину имени переменной, и требует "{".
Пытаюсь что-нибудь менять — бывает, ругается на "[", вставляю комментарий — ругается на отсутствующую там фигурную скобку!

Мда... Стал выяснять, оказалось, что если в начале .js стоит блок /* */ с комментариями на русском языке, Опера сходит с ума.

QUOTE
Я, кстати, userjs свои так дебажил: сую вызов alert('123'); после каждой строчки поочерёдно, если алерта нет - значит на предыдущей строке косяк.

Зачем же так мучаться с дебагом, обычно достаточно посмотреть в Error Console (Tools -> Advanced).

-=CHE@TER=-,
Sep 10 2008, 23:57 Opera 9.xx
Ух ты, спасибо, теперь я тоже избавился от этой кнопки.

Новый интерфейс воистину ужасен, решение этой проблемы здесь.

А у меня после перехода c 9.25 на 9.5x перестали работать два UserJS...
-=CHE@TER=-,
Aug 28 2008, 11:45 No-CD for Stalker: Clear Sky
Marsel, правильно называй тему!
А StarForce Сталкера ломают тут: [ссылка умерла] antistarforce.com/forum/6-1355-189
-=CHE@TER=-,
Aug 7 2008, 00:07 Нужен нормальный C/C++ компилятор
А чем тебе не нравится msvcrt.dll? Она везде есть, начиная с Win98.
Тут волшебства не бывает, нет такого компилятора, который бы взял и сделал код меньше.
Надо дать понять компилятору, что ты от него хочешь.
С DEV-CPP (MingW) я толком не работал, а для MSVC знаю несколько ключей и директив.
В командной строке:

call cl /nologo /O1igab1 /G6Fy /Zp1 /QIfist <исходники>

В главном исходнике:
CODE
#pragma optimize("gsy", on)
#pragma comment(linker,"/section:.text,CERW /merge:.rdata=.text /ignore:4078") // Соединить секции, тут надо экспериментировать, при соединении некоторых секций EXE-шник раздувается
#pragma comment(linker,"/opt:nowin98") // Использовать выравнивание секций в 512 байт, а не 4096
#pragma comment(linker,"/entry:main") // Обход внутренней стартовой функции, если программа не использует сишные функции, а только WinAPI
#pragma comment(linker,"/subsystem:windows") // Или /subsystem:console, иногда без явного указания ругается
#pragma comment(linker,"/nodefaultlib:libc") // Отключить стандартную сишную библиотеку
#pragma comment(lib,"kernel32") // Подключить нужные библиотеки для WinAPI
#pragma comment(lib,"user32")
#pragma comment(lib,"gdi32")
#define WIN32_LEAN_AND_MEAN  // Иногда помогает уменьшить размер для WinAPI'шных прог.

Хорошо еще пропатчить линкер, чтоб не пихал сигнатуру "Rich" в начале EXE-шника.
Для версии link.exe 6.00.8447, размер 462901 байт:
00045826: 03 -> 90
00045827: C8 -> 90

Для других версий - находим такой код и меняем там 03C8 на 9090:
CODE

03C8 add ecx,eax
898DE4010000 mov [ebp][000001E4],ecx
FF1514114000 call _tzset;MSVCRT


Если поставили "/entry:main", а программа использует командную строку в сишном стиле, то можно отдельно ее инициализировать:
CODE
__declspec(dllimport) void __getmainargs(int *,char ***,int *,int,int *);

int main(int argc,char *argv[])
{
   ...
  {
    int tmp;
    __getmainargs(&argc,&argv,&tmp,0,&tmp);
  }
  ...
}
-=CHE@TER=-,
Jul 14 2008, 16:34 CheckSum
Спасибо за плагин, пригодится.

Заодно поиздевался над исходниками:

— перенес/заменил Initialization у всех модулей;
— добавил asm..end в checksum.pas;
— заменил md5.pas своим, быстрым (очень заметно) и маленьким;

Теперь компилится с dcc7hack, и даже работает.
Для совместимости с обычным компилятором оставил старый код в {$IFDEF}.

Залито на TeamFTP.
-=CHE@TER=-,
Jun 16 2008, 03:09 Баги сайта и форума
Можно ли настроить отображение времени по-привычному, в 24-часовом виде?
А то AM/PM уже достает понемногу.
Siberian GRemlin,
Jun 8 2008, 12:28 Delphi, Asm, C, WinAPI, PHP, ...
-=CHE@TER=-, вопросы нормальные =)

1. Если я правильно понял, то так:
CODE
Type
  PStructArray=^TStructArray;
  TStructArray=array [0..0] of TStruct;
Var
  T: PStructArray;
  I: Integer;
Begin
  GetMem(T, 10*SizeOf(TStruct));
  For I:=0 To 9 Do
    T[I].par_int:=I;
  FreeMem(T, 10*SizeOf(TStruct));
End.


2. Как-то так:
CODE
type T4Char=array [0..3] of char;
var dwSign: cardinal;
begin
  dwSign:=$46464952;
  if T4Char(dwSign) = 'RIFF' then
    WriteLn('yes') else WriteLn('no');
end.

Более оптимизированный код получим при:
CODE
type T4Char=array [0..3] of char;
const RIFF_SIG:T4Char='RIFF';
var dwSign: cardinal;
begin
  dwSign:=$46464952;
  if dwSign = Cardinal(RIFF_SIG) then
    WriteLn('yes') else WriteLn('no');
end.
-=CHE@TER=-,
Jun 7 2008, 12:06 !Вирусы!
[offtopic]
QUOTE(-=CHE@TER=-)
изменение байт таким образом, чтобы CRC32 совпало, довольно маловероятно (где-то даже вероятность читал, кажется в той же Wiki), но тем не менее, в случае MD5 (16 байт!) - эта вероятность в 4 раза меньше.
Вероятность того, что у двух случайно взятых файлов совпадет
CRC32 - 1 из 2^32, а у
MD5 - 1 из 2^128, что в 7.9*10^28 раз менее вероятно.
[/offtopic]
-=CHE@TER=-,
Apr 8 2008, 16:20 Delphi, Asm, C, WinAPI, PHP, ...
-=CHE@TER=-, ой, извини, я не заметил, эти методы объявлены, как protected.
Ну хотя бы кроссплатформенный вариант можно подсмотреть.
-=CHE@TER=-,
Apr 3 2008, 09:57 Временное отключение Cleartype
Большую часть времени у меня включено сглаживание шрифтов (Cleartype), на моем экране так лучше виден текст.
Но бывают ситуации, когда Cleartype вреден. Например, при снятии скриншотов его лучше отключить.
Я заметил, что экранная лупа (magnify.exe) отключает его на время своего запуска, и решил добиться такого же эффекта.
В результате получился такой код на Delphi:
CODE
uses Windows;

//const // Uncomment this if you're using Delphi 6 or earlier
//  FE_FONTSMOOTHINGSTANDARD = $0001;
//  FE_FONTSMOOTHINGCLEARTYPE = $0002;
//  SPI_GETFONTSMOOTHINGTYPE = $200A;
//  SPI_SETFONTSMOOTHINGTYPE = $200B;

const
  SysParamFlags=SPIF_SENDWININICHANGE or SPIF_UPDATEINIFILE;
  RedrawFlags=RDW_INVALIDATE or RDW_ERASE or RDW_ALLCHILDREN
    or RDW_UPDATENOW or RDW_ERASENOW;
var
  SmoothingType:cardinal;
  WasCleartype:boolean;
begin
  SystemParametersInfo(SPI_GETFONTSMOOTHINGTYPE,0,@SmoothingType,0);
  WasCleartype:=SmoothingType=FE_FONTSMOOTHINGCLEARTYPE;
  if WasCleartype then
  begin
    SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE,0,
      pointer(FE_FONTSMOOTHINGSTANDARD),SysParamFlags);
    RedrawWindow(0,nil,0,RedrawFlags);
  end;
  // Make screenshot, etc.
  MessageBox(0,'Cleartype is disabled at this point...','Test',0);
  // Restore Cleartype state
  if WasCleartype then
  begin
    SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE,0,
      pointer(FE_FONTSMOOTHINGCLEARTYPE),SysParamFlags);
    RedrawWindow(0,nil,0,RedrawFlags);
  end;
end.
Естественно, для версий Windows ниже XP этот код не нужен, и не будет работать.
-=CHE@TER=-, Siberian GRemlin,
Mar 27 2008, 14:27 JPGStrip
QUOTE(-=CHE@TER=- @ Mar 27 2008, 08:36 PM) [snapback]1963[/snapback]
- show error if no files given
Не совсем понял про что тут речь - объясните, кто добавил, или уберите из to do.

Добавил я. Имел ввиду, что нужно выдавать ошибку, если ни один файл не был найден по маске.
-=CHE@TER=-,
Mar 6 2008, 08:42 Замена системных модулей для Delphi
Обновление:
— замена протестирована на Delphi 4, 5, 6, 7, 2006, 2007;
— частично восстановлена работа с юникодом и WideString;
— восстановлена компиляция DLL;
— мелкие изменения и исправления.

Скоро будет замена компилятора, кто хочет потестировать пропатченный компилятор (Delphi 7), пишите в ICQ.
-=CHE@TER=-,
Jan 21 2008, 09:55 JPGStrip
-=CHE@TER=-
Как сохраняет в CMYK JPEG Corel Photo-Paint 9.
После обрезки, файл перестает нормально читаться ACDSee 3.1. Самим Photo-Paint'ом читается нормально.
А больше у меня нет программ, которые могли бы читать CMYK JPEG =)

Внес мелкие изменения в JPGStrip:
QUOTE
Version: 0.23 -> 0.24
Grom PE * New fancy make.bat
Grom PE * Smaller jpgstrip.ico
Grom PE * Removed double import of WriteFile (Write2 function)
Grom PE * Changed year to 2008
-=CHE@TER=-,
Jan 20 2008, 09:11 Статья о переводе с C++ на Delphi
Интересовался этим давно, но нашел весьма недавно полезную статью о переводе кода с C++ на Delphi.

http://www.rvelthuis.de/articles/articles-convert.html

Кто знает еще статьи, поделитесь.
-=CHE@TER=-, Siberian GRemlin,

2 Страниц V < 1 2
Упрощённая версия Сейчас: 28th March 2024 - 22:52