Релиз RAD Studio XE4

-gigant-x

Турист
Регистрация
27 Июл 2013
Сообщения
4
Реакции
0
Credits
8
Народ! Нужна помощь!

эта функция должна произвести различные операции c файлом 'test.txt'(а вообще с любым - .txt/.jpg/.avi/.exe/.dll/...)
но обязательное условие в данном случае - работая с ним как с потоком.

function StartFunction(szFilePath, szParams:string; pFile:pointer): DWORD;
var
...
begin
...
end;

Для того чтобы проследить все действия поэтапно, старт всей процедуры осуществляется по клику "Button2"

procedure TForm1.Button2Click(Sender: TObject);

var
MyStream: TMemoryStream; // "MyStream" - произвольное имя потока / "TMemoryStream" - тип потока

begin
MyStream := TMemoryStream.Create; // Создать поток
try
MyStream.LoadFromFile('test.txt'); // загрузить в поток содержание файла 'test.txt'

StartFunction(MyStream.Memory); // Запуск функции - ЗДЕСЬ ОШИБКА!

finally
MyStream.Free; // Освободить поток
end;
end;

Весь остальной код проверен, всё именно так как надо,
но вот именно в строке запуска функции возникает ошибка при компиляции!

Сама проблема в том что этот принцип запуска функции
работал отлично на "Delphi 7", а у меня "Delphi XE4"
(Пытаюсь адаптировать старый код из D7 в DXE4)

Компилятор выдаёт ошибку: [dcc32 Error] Unit1.pas(...) E2010 Incompatible types 'String' and 'Pointer'

Тут мне всё понятно - несовместимость типов 'строки' и 'Указателя'(или точки)

Недавно решил такую-же проблему - где на тип "PChar" компилятор отказывался компилить, а при смене
на "PAnsiChar" компилилось но с придуприждением W1044 Suspicious typecast of 'string' to 'PAnsiCHar'

Там я решил это так:
---
Было:
CreateProcess(nil, PChar( ParamStr(0)), nil, nil, ...)

стало:
CreateProcess(nil, PAnsiChar(PChar( ParamStr(0))), nil, nil, ...)
---

В данном случае прога проглатила и "String" и "PChar" и даже не подавилась :)
Но вот с "(MyStream.Memory)" после "точки" не справляюсь...

Как таким же способом скармить 'String' и 'Pointer'???
 

rgreat

Местный
Регистрация
24 Дек 2009
Сообщения
35
Реакции
32
Credits
70
Начнем с того что у тебя у вызова и объявления функции разное кол-во параметров.
1 против 3-х.

function StartFunction(szFilePath, szParams:string; pFile:pointer): DWORD;

StartFunction(MyStream.Memory); // Запуск функции - ЗДЕСЬ ОШИБКА!

Поэтому ответить на твой вопрос - это уже к экстрасенсам.

Недавно решил такую-же проблему - где на тип "PChar" компилятор отказывался компилить, а при смене
на "PAnsiChar" компилилось но с придуприждением W1044 Suspicious typecast of 'string' to 'PAnsiCHar'

Правильно так: PAnsiChar(AnsiString(S)). (Где S = string)
Правда если ты работаешь с данными в виде ASCII то это избыточность кода и потеря процессорного времени, а если с UniCode - потеря данных.

По хорошему - меняй типы хранения и/или параметры функций на более адекватные задаче.

P.S. Чтобы не быть оффтопичным, я пока откатился обратно на XE3. Под XE4 у меня в некоторых проектах Tooltip expression evaluation для сложных классов отказался работать. Сервис Пак 1 - не помог. Сыровато. А ведь осенью уже XE5 выходит....
 
Последнее редактирование модератором:

cippirimerlo

Местный
Регистрация
3 Июн 2013
Сообщения
21
Реакции
4
Credits
48
Dono if this is a right place for this question. But I?ve read something about the new XE5.
Does Android target is only for Delphi, not for C++ ?
Seem strange, I must wait for XE6?
 

pterik

Турист
Регистрация
25 Апр 2006
Сообщения
5
Реакции
1
Credits
2
XE4 появился в апреле 2013. XE5 аносирован на 7 сентября 2013.
З.Ы. Мне кажется номер версии в XE не так важен.
 
Последнее редактирование модератором:

Is_Vale

Турист
Регистрация
17 Авг 2010
Сообщения
10
Реакции
2
Credits
16
Будет ли Android в XE5 ???

Сегодня по почте получил приглашение на "тур RAD Studio" (презентация) и вот что в нем говориться:
Осенью компания Embarcadero выпустит новую версию RAD Studio под Android. Подробности первыми узнают участники мероприятий мирового тура RAD Studio, которые пройдут 11 сентября в Санкт-Петербурге, 18 сентября в Астане и 24 сентября Москве.

По мере развития мобильных технологий разработчики корпоративных систем и индивидуальные разработчики все чаще сталкиваются с проблемами масштабирования приложений под разные платформы и форм факторы. Принимая это во внимание, эксперты расскажут не только о возможностях новой версии RAD Studio для Android, но рассмотрят практические примеры ее использования для мобильной разработки.

В программе:

  • Как использовать разрабатывать под множество операционных систем - Windows, OS X, iOS, Android
  • Как обеспечить эффективную работу приложений с различными базами данных – Oracle, MS SQL, DB2, Sybase, Interbase и др.
  • Как обеспечить мобильность корпоративных решений и работу с ними на новых устройствах – смартфонах, планшетах, также как и на деcктопах
Также вы узнаете как создавать приложения на Android и iOS с «нуля».

Вас ждет не только техническая сессия от реальных разработчиков Embarcadero и создателя платформы приложений FM Евгения Крюкова, но и доклад и ответы на вопросы по развитию платформы Android от представителя Google.
Ура!!! Встречаем поддержку дроида!!! :yah:
 

Olex_t

Турист
Регистрация
15 Янв 2014
Сообщения
2
Реакции
0
Credits
4
У меня ХЕ4 на ХР, пару месяцев работал нормально, "регистрировал" с 02.xe4_bds.exe_patch.exe, зачем 03.XE4SlipGen.exe не понял, кажется им вообще не пользовался. Сейчас обнаружил что недоустановился буст. Решил доустановить, и поехало.... Invalid Serial Number.. кинулся деинсталировать опять Invalid Serial Number...

ЧЕ ДЕЛАТЬ?
 

Olex_t

Турист
Регистрация
15 Янв 2014
Сообщения
2
Реакции
0
Credits
4
Без буста никак, очень нужен...
 

BuilderFan

Местный
Регистрация
20 Авг 2011
Сообщения
39
Реакции
24
Credits
78
I installed it to try it out.
XE4 seems to make far bigger binaries than XE2 did.
Anyone knows why? (Is there a fix?)
 

ZardoZ74rus

Турист
Регистрация
4 Мар 2011
Сообщения
4
Реакции
0
Credits
8
Есть у кого-нибудь отдельно рабочее лекарство на неё?
Те что нашел и тут выше не идут с последним обновлением.
 
Последнее редактирование модератором:

ZardoZ74rus

Турист
Регистрация
4 Мар 2011
Сообщения
4
Реакции
0
Credits
8
Сам нашел на рутрекере. Надеюсь протянет долго.