Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как перевести из string в shortString [D6]


Страницы:   1 2

it_work ©   (2006-05-01 09:13:00) 

Пишу библиотеку.
В языке, на котором будет при программировании использоваться эта библиотека возможно передовать и принимать параметры только в shortString.
Как в delphi перевести string в shortString?


it_work   (2006-05-02 09:22:00) [21]

зачем FreeLibrary ?
как вызывается из моего приложения?


it_work   (2006-05-02 09:22:00) [22]

уверен, так как при коментировании d1:=ss; функция вызывается нормально.
Самое интересное, что при компиляции в делфях ошибки нет, но при вызове функции из библиотеки моей программы выдается такая ошибка.


balepa   (2006-05-02 09:14:00) [23]


> it_work ©   (02.05.06 09:06) [11]


А у меня не выдает.
Уверен что при присвоении d1:=ss, а не при ss:=DateToStr(Msg.Date); ?

Как вызываем ?
FreeLibrary делаем ?


it_work   (2006-05-02 09:06:00) [24]

С этой ошибко йразобрался, теперь другая, подобная :))

Function READHEADERMAIL(var d1: shortString): shortString; register;
var ss: string;
....
msg:=tIDMessage.Create(nil);
...
Try
 ss:=DateToStr(Msg.Date);
 d1:=ss;
Except
   on E: Exception do
     begin MessageDlg(E.Message, mtInformation, [mbOk], 0);
     Result:='Error'; end;
end;
....

присвоение значения переменной ss происходит нормально, при присвоении значения переменной d1 выдает ошибку
Access violation at adress .... in module '....dll'. Write of adress ....

И еще, по поводу первой ошибки:
результат возвращается в сабжект не весь, а только первое слово из строки, с чем может быть связано?
Пример сабжект имеет значение Test sub
в переменную subjectmail возвращается только Test


balepa   (2006-05-02 07:35:00) [25]

А какая всетаки ошибка ?


balepa   (2006-05-02 06:59:00) [26]

Читал что написано в коменте при создании пустого проекта DLL (ShareMem) ?


it_work   (2006-05-02 06:53:00) [27]

при компиляции ошибок нет


it_work   (2006-05-02 06:53:00) [28]

Угу, пишу dll.
Именно при выполнении subjectmail:=Msg.Subject; возникает ошибка, в результате чего функция возвращает значение 'Error'#13'Не могу прочитать тему письма!';


balepa   (2006-05-02 06:49:00) [29]


> Пишу библиотеку.


DLL ?


balepa   (2006-05-02 06:47:00) [30]

В каком месте и какая ошибка ?


it_work   (2006-05-02 06:33:00) [31]


> Покажи

Чего показать?
код?
Function READHEADERMAIL(var subjectmail: shortString): shortString; register;
....
msg:=tIDMessage.Create(nil);
...
Try
subjectmail:=Msg.Subject;
Except
 Result:='Error'#13'Не могу прочитать тему письма!';
end;
....


возвращает в результат сообщение об ошибке.


balepa   (2006-05-02 06:10:00) [32]


> it_work ©   (02.05.06 06:08) [2]

Покажи


it_work   (2006-05-02 06:08:00) [33]

не катит.
у меня вызывается в библиотеке функция, котора возвращает результат в string. Если это значение присваивать параметру моей функции типа ShortString, то возникает исключение.


Virgo_Style   (2006-05-01 10:05:00) [34]

var S  : String;
   SS : ShortString;

begin
 S  := 'SomeText';
 SS := S;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо