Найдено 16 результатов

TimK
16.02.2010 15:32:21
Форум: Lazarus
Тема: Глобальные переменные
Ответы: 8
Просмотры: 7949

Re: Глобальные переменные

Вы обращаетесь из unit1 к переменной основного модуля программы. Это нельзя делать ни в дельфе не в FPC, ни в прочих паскалях. И с настройками лазаруса это никак не связано - нет таких. На самом деле ваша переменная не глобальная, а локальная переменная процедуры PascalMain - точки входа программы ...
TimK
11.02.2010 21:03:49
Форум: Free Pascal Compiler
Тема: Минимальная RTL. Проблемы с DLL
Ответы: 21
Просмотры: 16112

Re: Минимальная RTL. Проблемы с DLL

Тогда похоже на то, что действительно рубанул сплеча и выкинул что-то вроде CheckInitialStkLen (вызывается из инициализации system). С этим нужно поаккуратнее
Добавил - не помогает

function CheckInitialStkLen(stklen : SizeUInt) : SizeUInt;assembler;
asm
movq %gs:(8),%rax
subq %gs ...
TimK
11.02.2010 20:08:02
Форум: Free Pascal Compiler
Тема: Минимальная RTL. Проблемы с DLL
Ответы: 21
Просмотры: 16112

Re: Минимальная RTL. Проблемы с DLL

Я, честно говоря, не совсем понимаю, что там творится: ну вычли из стека чуть побольше - это неоптимально, но вроде как работать должно по-прежнему. Или же причина в том, что Win64 предъявляет определенные требования к выравниванию стека, а Win32 - нет?
Это явление удается воспроизвести с ...
TimK
11.02.2010 20:00:48
Форум: Free Pascal Compiler
Тема: Минимальная RTL. Проблемы с DLL
Ответы: 21
Просмотры: 16112

Re: Минимальная RTL. Проблемы с DLL

coyot.rush писал(а):Как я понял стоит задача по написанию маленькой dll, используй kol. лично сам юзал kol+ mck на lazarus пустое окошко 45 kb :!: :!: :!: должно сработать и с dll :D


Ну она и так маленькая, 4К. KOL не нужен - код состоит из 10 вызовов WinAPI. Вот бы еще с глюками разобраться :)
TimK
11.02.2010 19:40:10
Форум: Free Pascal Compiler
Тема: Минимальная RTL. Проблемы с DLL
Ответы: 21
Просмотры: 16112

Re: Минимальная RTL. Проблемы с DLL

Ну насчет смартлинка не знаю, но неиспользуемые переменные точно на генерируемый код влиять не должны. Проверил с оригинальной RTL - те же различия. В Win32 тоже. С другой стороны такой баг уже бы вылез везде-вокруг :)
TimK
11.02.2010 18:41:28
Форум: Free Pascal Compiler
Тема: Минимальная RTL. Проблемы с DLL
Ответы: 21
Просмотры: 16112

Re: Минимальная RTL. Проблемы с DLL

Отличия есть, да... Выделил жирным:

С переменными:
.386p
DGROUP GROUP _BSS,_DATA
ASSUME CS:_CODE,ES:DGROUP,DS:DGROUP,SS:DGROUP
_CODE SEGMENT PARA PUBLIC USE32 'CODE'
ALIGN 16
PUBLIC P$DLL_DOPROCESSATTACH
P$DLL_DOPROCESSATTACH:
push rbp
mov rbp,rsp
sub rsp,272
mov qword ptr [rbp-184],rbx ...
TimK
11.02.2010 18:05:41
Форум: Free Pascal Compiler
Тема: Минимальная RTL. Проблемы с DLL
Ответы: 21
Просмотры: 16112

Re: Минимальная RTL. Проблемы с DLL

В том и беда что по теории юзаеться одна деклорация а на практике подключаеться каойнибудь JwaWinVer.pas
Да нет же Только Windows и Messages в uses.

Имхо попроюуй Ollydbg посмотри за Access denied. судя по всему непрвильный дескриптор для отображения файла
CreateFileMapping отрабатывает ...
TimK
11.02.2010 17:30:50
Форум: Free Pascal Compiler
Тема: Минимальная RTL. Проблемы с DLL
Ответы: 21
Просмотры: 16112

Re: Минимальная RTL. Проблемы с DLL

попробуй поищи VersionInfo в исходниках fpc у меня 14 совпадений версия 2.4.0
возможно 2) вариант

Не, отпадает... Юзается правильная декларация. TOSVersionInfo только одна, в struct.inc. И потом так работает (TOSVersionInfo и TSecurityAttributes в отдельной функции):

function FakeFunc&#58 ...
TimK
11.02.2010 17:06:12
Форум: Free Pascal Compiler
Тема: Минимальная RTL. Проблемы с DLL
Ответы: 21
Просмотры: 16112

Re: Минимальная RTL. Проблемы с DLL

1)Возможно ошибки с типами данных. типо под win32 работает и integer и int64 , а под win64 только int64.
2)Нечто подобное встречалось в delphi глюк заключался в том что если имена переменых совпадают с именами в других модулях (входящих в комплект среды). то возникают "чудеса в решете"

Типы ...
TimK
11.02.2010 16:15:57
Форум: Free Pascal Compiler
Тема: Минимальная RTL. Проблемы с DLL
Ответы: 21
Просмотры: 16112

Минимальная RTL. Проблемы с DLL

Требуется длл минимального размера (глобальный хук). Код длл состоит только из API-вызовов. Для этого имеется урезанная RTL состоящая из оригинальных Windows, Messages и порезанного System:

unit System;

interface

{$I-,Q-,H-,R-,V-,S-}
{$mode objfpc}


{systemh.inc}

type
DWord = LongWord ...
TimK
02.02.2010 09:04:43
Форум: Free Pascal Compiler
Тема: Прблема с DLL
Ответы: 2
Просмотры: 2840

Re: Прблема с DLL

Собсна это даже компилироваться не должно.
program procedure_;
...
begin
...
c:=summaTWU(a,b); // Где декларация функции из длл?
// Почему summaTWU, если ее имя в длл ADD?
// Почему c:=summaTWU, а не summaTWU(с, a, b)?
// Почему TWU? :)
...
end ...
TimK
28.01.2010 18:34:41
Форум: Free Pascal Compiler
Тема: Перекомпиляция Win64 RTL из под Win32
Ответы: 5
Просмотры: 4448

Re: Перекомпиляция Win64 RTL из под Win32

Пасиба. Наверно make поддерживает только компиляцию RTL текущей платформы. В принципе понятно, слишком жирно обеспечить все варианты кросскомпиляции. Вобщем, проблема решена в лоб: fpc -TWin64 -Px86_64 -Us ololo system.pp и т.д.. Благо из RTL, кроме system, нужны только windows и messages. Размер ...
TimK
28.01.2010 17:22:16
Форум: Free Pascal Compiler
Тема: Перекомпиляция Win64 RTL из под Win32
Ответы: 5
Просмотры: 4448

Re: Перекомпиляция Win64 RTL из под Win32

Выкинуть ненужное, какой еще может быть? :)
TimK
26.01.2010 21:36:01
Форум: Free Pascal Compiler
Тема: Перекомпиляция Win64 RTL из под Win32
Ответы: 5
Просмотры: 4448

Перекомпиляция Win64 RTL из под Win32

У когонить получалось перекомпилировать Win64 RTL из под Win32?

Запускаю make в \source\rtl\win64, пишет:
makefile:187: *** The Makefile doesn't support target i386-win64, please run fpc make first. Stop.

Win32 RTL собирается без проблем.
TimK
13.01.2010 17:42:12
Форум: Lazarus
Тема: Отображение модулей RTL при отладке
Ответы: 2
Просмотры: 2294

Re: Отображение модулей RTL при отладке

Нет, это не помогает. Теоритически, нужно иметь RTL скомпиленную с отладочной информацией и где-то в опциях проекта задавать ее путь...