Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Embarcadero RAD Studio XE3

Автор: mcka
Дата сообщения: 24.04.2013 09:28
Всем привет.
Пытаюсь реализовать в Delphi XE3 это.
Интерфейс IInitializeWithStream объявлен в модуле PropSys.
Интерфейс IThumbnailProvider объявил сам:

Код: {$EXTERNALSYM IThumbnailProvider}
IThumbnailProvider = interface(IUnknown)
['{e357fccd-a995-4576-b01f-234630154e96}']
function GetThumbnail(cx: uint; out hBitmap: hBitmap; out bitmapType: dword)
: HRESULT; stdcall;
end;
Автор: Eternal_Shield
Дата сообщения: 24.04.2013 10:43
mcka

Цитата:
1. Компиляция - ok, с варнингом:

ключевое слово reintroduce сделает своё дело [more]function Initialize(const ...)...; reintroduce;[/more]

Ошибок не вижу. Объявление интерфейса "портировано" верно.


Цитата:
DebugString не вижу, что не так?

Каким образом проверяете работоспособность своей DLLки? Где Вы ожидаете результаты OutputDebugString увидеть? В IDE? Если да, то сначала надо к соотв. процессу приаттачиться, а потом уже ждать вывода. Либо сразу в файл писать. Если приаттачиться к процессу не удаётся или сам процесс найти сложно.
Автор: mcka
Дата сообщения: 24.04.2013 12:54
Eternal_Shield естественно не из среды, использую DebugView v4.81
Данный варнинг не влиял на конечный результат.
Изменения реестра тоже можно перенести в метод:

Код: procedure UpdateRegistry(Register: Boolean); override;
Автор: Arioch1
Дата сообщения: 24.04.2013 12:58

Цитата:
JCL делала последний коммит в SVN 28 янваля

SVN's dead, baby

а у Git'a геморрой с CR/LF vs LF на концах
https://github.com/project-jedi/jcl/commits/master

А в общем, кому нужен XE4 если XE5 будет через несколько месяцев ?


Добавлено:
mcka

Это не BPL, это DLL. Убери зверский код из main.pas initialization.

Сделай просто lazy init переменную, которая будет вызываться из других функций и при первом вызове действительно создаст что надо.

http://www.transl-gunsmoker.ru/2009/01/dllmain.html
http://www.transl-gunsmoker.ru/2009/01/dllmain_7983.html

Добавлено:

Цитата:
утилита для апгрейда 1-based string кода на 0-based immutable.


Не надо, надо делать паскалевскую обёртку строки, поверх иммутабельной LLVMной (если такая вообще существует. LLVM вроде как языками заведует, а не библиотеками)

GDI Font иммутабельный - но VCL TFont вполне мутирует.
Аналогично TWinControl.ReCreateWnd.
и т.д.


Цитата:
По поводу "как это сделать" - я бы сделал refactoring на тему замены with на промежуточную переменную


Угу, а потом Дельфи сломалась!!! ничего не работает!!11111

Цитата:
form8.ADOQuery2.Active:=false;
form8.ADOQuery2.SQL.Clear;
form8.ADOQuery2.SQL.Add('SELECT min(data)');
form8.ADOQuery2.SQL.Add('FROM Table_1');
form8.ADOQuery1.Active:=true;
edit1.Text:=adoquery2.FieldByName('data').AsString;


А временные переменные, особенно автоматические, имеенно так и будут называться, i1, i2, i3...

Если уж неймётся - то надо расширять with и вводить type inference

Цитата:
with const A1 := ADOQuery1, A2 := ADOQuery2 do begin
...
end;

Расширил же Вирт is/as и не заморачивался с пуризмом

И то же самое наконец сделать с юнитами, чтобы они семантически как можно меньше отличались от классов. Заодно облегчится проблема глобальных переменных - они хотя бы перестанут засорять пространство имён.
Автор: Eternal_Shield
Дата сообщения: 24.04.2013 13:40
mcka

Цитата:
естественно не из среды, использую DebugView v4.81

Конкретнее можно? Вы загружаете DLLку в DebugView или открываете тот процесс, который загружает Вашу DLL? Если первое, то ничего и не должно происходить, если второе, то тут, конечно, надо копать что к чему.

Автор: mcka
Дата сообщения: 24.04.2013 14:23
Eternal_Shield
я запускаю debugview, вижу что он подключился, он отображает все сообщения даже kernel, затем я регистрирую в системе свою dll с помощью
Regsvr32.exe DCMThumbnail.dll - ок
затем загружаю explorer открываю папку где лежат файлы *.dcm в результате я не вижу что система подключила мою ддл. т.е. GetThumbnail method должен вызваться (должны посыпаться debugstring) системой для получения изображения(Thumbnail) моих dcm-файлов

как в этой статье c xyz-файломи


Добавлено:
Eternal_Shield ПРОГРЕСС!
в метод GetThumbnail добавил

Код:
s := TStringList.Create;
s.Add('TDCMThumbnail.GetThumbnail');
s.SaveToFile('d:\11111111.txt');
s.Free;
Автор: Arioch1
Дата сообщения: 24.04.2013 15:28
опробуй в конец outputdebugstring добавить #13#10
Автор: Eternal_Shield
Дата сообщения: 24.04.2013 17:43
mcka

Цитата:
и файл создался, моя ошибка в том, что я был уверен, что debugstring должны были быть, все работало, код правильный, а я голову ломал.

Ну и слава богу, что само всё разрешилось, а то я уже собирался прийти домой и разобраться в чём там проблема, т.к. на работе никак
Автор: mcka
Дата сообщения: 25.04.2013 13:31
Eternal_Shield Еще раз спасибо!
Автор: qwertEHOK
Дата сообщения: 06.05.2013 16:47
подскажите пожалуйста - обновление с XE до XE2\3\4 безболезненно может пройти или надо удалять XE и ставить следующую версию?
Автор: X11
Дата сообщения: 06.05.2013 17:51
Должно безболезненно, ничего удалять не нужно
Автор: LadyOfWood
Дата сообщения: 06.05.2013 18:22

Цитата:
подскажите пожалуйста - обновление с XE до XE2\3\4

У меня живут XE и XE3 в виртуалке. Полет нормальный. Только основноую надо ставить последней для "правильной" обработке расширений.
Автор: zertyuiop
Дата сообщения: 06.05.2013 18:25
qwertEHOK

Безболезненно в каком смысле? Если о проектах, то зависит от компонентов. Если о всем остальном, то безболезненно.
Автор: X11
Дата сообщения: 06.05.2013 18:44
2007/XE2/XE3 жили безболезненно и компоненты в том числе.
Автор: alexgala
Дата сообщения: 08.05.2013 13:02
тоже ничего не удалял, работает все XE2/XE3/XE4
Автор: delover
Дата сообщения: 08.05.2013 18:47
подскажите пожалуйста - обновление с XE до XE2\3\4 безболезненно может пройти или надо удалять XE и ставить следующую версию?
ru-board пишет обычно про эти случаи в шапке, по мере возможности. XE3 - вчера портировал олдовый EhLib которому 90 с хвостиком в XE3. Отличий не заметил, он даже XP Windows схемы подхватил для фильтров. Оснований использовать извилины (это те которые в черепе) - не вижу.
Автор: vez
Дата сообщения: 08.05.2013 19:28

Цитата:
подскажите пожалуйста - обновление с XE до XE2\3\4 безболезненно может пройти или надо удалять XE и ставить следующую версию?

Ничего не надо удалять, ставлю в любом порядке от билдера-6 до ХЕ4, всё живёт и размножается. Проблемы могут быть если мудрить с LicenseManager- ом, что-нибуддь стирать из лицензий не зная что.
ставил 2007-2010-2011-ХЕ2-3-4, жду ХЕ5 8-)))
У нас теперь есть такое развлечение
Автор: delover
Дата сообщения: 11.05.2013 18:21
Arioch1
I'm verry wery обиженый блин. Жаль. Пробухаюсь недельку не теряйте.

Добавлено:
Arioch1
Мда, надеюсь Вы правильно поняли, ктото отстоял свои 3 рубля но тормознул человечество на пол года.

Добавлено:
Вспомнил - 3 серебренника называется, я бухать.
Автор: DYUMON
Дата сообщения: 15.08.2013 13:30
щас пока читал данную ветку упало в почту письмо о семинарах емб про разработку под андроида.
походу они обезьяну портировали под андроида. что то страшно становится.
Автор: Arioch1
Дата сообщения: 15.08.2013 13:38
у так Beta5 давно уже идёт, вот видимо решили NDA снять

Мне с самого начала страшно от сочетания нынешняя Delphi RTL + переход на принудительный RefCounting везде + Android NDK

Но увидим, вдруг удивят...

Версия: переход на принудительный RefCounting рпоизошёл потому, что новые разработчики просто не могут справиться с явными Create/Free - забывают кто кому хозяин.
Автор: MGAlex
Дата сообщения: 17.08.2013 15:43

Цитата:
подскажите пожалуйста - обновление с XE до XE2\3\4 безболезненно может пройти или надо удалять XE и ставить следующую версию?

Если решили обновлять, то дождитесь уже ХЕ5.
Я сижу на ХЕ3, ХЕ4 решил пропустить, т.к. разработка для iOS мне не интересна.

Я предпочитаю удалять и ставить с нуля. Винду тоже можно обновлять, но стабильную работу вряд ли кто-то сможет гарантировать.
Не буду расписываться за стабильность работы Студии, т.к. сам не обновлял, но с нуля всегда надежнее.
Автор: X11
Дата сообщения: 17.08.2013 15:44

Цитата:
Если решили обновлять, то дождитесь уже ХЕ5.


а потом ещё пол года, пока производители компонент выпустят компоненты под XE5
Автор: MGAlex
Дата сообщения: 17.08.2013 15:46

Цитата:
а потом ещё пол года, пока производители компонент выпустят компоненты под XE5

Какое-то время нужно будет подождать, конечно. Но, как правило, в течение месяца все появляется.
Автор: XPerformer
Дата сообщения: 18.08.2013 00:36
Туповатый вопрос - можно ли проект Delphi скомпилировать под 64 бита на 32 битной Windows7? (проект - простое консольное приложение)
Автор: AlekXL
Дата сообщения: 18.08.2013 00:40

Цитата:
Туповатый вопрос - можно ли проект Delphi скомпилировать под 64 бита на 32 битной Windows7? (проект - простое консольное приложение)

наверное, да. Сама среда 32 разрядная, и компилятор вызывается как dll, то есть он наверное тоже 32-разрядный. Возможно, даже отлаживать можно, по сети.
Автор: XPerformer
Дата сообщения: 18.08.2013 00:45
AlekXL
ваш ответ не понял
У меня практический вопрос: как собрать проект под 64 бита?


то есть вот тут чтобы появилось 64?

Добавлено:
Запускать, конечно, буду под 64-разрядной системой. Но поставить там делфи для компиляции не могу, а дома система 32-разрядная
Автор: Eternal_Shield
Дата сообщения: 18.08.2013 10:01

Цитата:
то есть вот тут чтобы появилось 64?

Target Platforms -> правой кнопкой жмак => Add platform
Автор: MGAlex
Дата сообщения: 18.08.2013 10:21
Добавлю к предыдущему ответу, что обязательно должна быть установлена птичка Make the selected platform active (Сделать выбранную платформу активной)

Автор: XPerformer
Дата сообщения: 18.08.2013 10:25
Спасибо, добрые отзывчивые люди
Я уже успел поставить на удаленную машину W2008, закачать туда 2.6 Гб делфи, установить, запустить и увидеть, что там тоже нету 64 бита, и нажать правую кнопку и понять, что на моей 32-битной системе эта кнопка тоже есть
Автор: MGAlex
Дата сообщения: 18.08.2013 11:01
Удачи.
Только под 32 разрядной ОС сильно не потестируешь. Компилировать дома, а нести в другое место смотреть, как работает, не шибко удобно.
Может, стоит подумать о виртуальной машине?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738

Предыдущая тема: [Delphi XE2] Размер PNG


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.