Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.08;
Скачать: CL | DM;

Вниз

DLL   Найти похожие ветки 

 
ElectriC ©   (2007-03-20 12:45) [40]

Так причина в том, что строки содержащие от 1 до 16 символом в Edit.Text
отображаются нормально, но когда строка содержит от 1 до 17, 18, 19 символов, то эти же символы удаляются и вместо них пишется строка, равная 16 символам, а 17, 18, 19 удаляются. Но строка от 1 до 20, 21... символов отображается нормально! Так в чём же дело? Почему именно 17, 18, 19 символы удаляются?


 
Сергей М. ©   (2007-03-20 12:54) [41]


> ElectriC ©   (20.03.07 12:45) [40]


123456789012345678 - это не строка, это число.

Строка - это "123456789012345678"

Разницу осюсяешь ?


 
ElectriC ©   (2007-03-20 13:04) [42]


> Разницу осюсяешь ?

Так, всё равно, с любой строкой происходит такая причина

> что строки содержащие от 1 до 16 символом
> в Edit.Textотображаются нормально, но когда строка содержит
> от 1 до 17, 18, 19 символов, то эти же символы удаляются
> и вместо них пишется строка, равная 16 символам, а 17, 18,
>  19 удаляются. Но строка от 1 до 20, 21... символов отображается
> нормально! Так в чём же дело? Почему именно 17, 18, 19 символы
> удаляются?

А строку с числом я привёл ради наглядного примера, чтоли!


 
Сергей М. ©   (2007-03-20 13:25) [43]


> ElectriC ©   (20.03.07 13:04) [42]


> Так, всё равно, с любой строкой происходит такая причина


Ты на вопрос не ответил) ..


> строку с числом я привёл ради наглядного примера


Никаких "строк с числом" ты не приводил, ты привел число, а не строку с чем-то там)


 
ElectriC ©   (2007-03-20 13:40) [44]


> Ты на вопрос не ответил) ..
> Никаких "строк с числом" ты не приводил, ты привел число, а не строку с чем-то там)

Да причём тут это?
Объясни, почему возникает данная причина(уже какой раз пишу)

> что строки содержащие от 1 до 16 символом в Edit.Textотображаются
> нормально, но когда строка содержит от 1 до 17, 18, 19 символов,
>  то эти же символы удаляются и вместо них пишется строка,
>  равная 16 символам, а 17, 18, 19 удаляются. Но строка от
> 1 до 20, 21... символов отображается нормально! Так в чём
> же дело? Почему именно 17, 18, 19 символы удаляются?

А ты пишешь, что я "на вопрос не ответил"! Причём тут это!


 
Сергей М. ©   (2007-03-20 13:44) [45]


> ElectriC ©   (20.03.07 13:40) [44]


Ты русский язык вообще понимаешь ?)

Тебе был задан вопрос - ЧЕМ, по-твоему, отличается

PChar(123456789012345678)

от

PChar("123456789012345678")

Соблаговоли уж ответить на него, прежде чем рассуждать о превратностях судьбы)


 
ElectriC ©   (2007-03-20 13:58) [46]


> Тебе был задан вопрос - ЧЕМ, по-твоему, отличается
PChar(123456789012345678) - число
от
PChar("123456789012345678") - строка

Ты сам на него ответил))(см. Выше):)))


 
Сергей М. ©   (2007-03-20 14:02) [47]


> ElectriC ©   (20.03.07 13:58) [46]


Ну так и какого же хрена ты возвращаешь число, а не строку, коль речь ведешь именно о строках ?


 
ElectriC ©   (2007-03-20 14:05) [48]


> Ну так и какого же хрена ты возвращаешь число, а не строку,
>  коль речь ведешь именно о строках ?

Так я и возвращаю строку в своей программе, но происходит та же причина,
описанная выше!!!!


 
Сергей М. ©   (2007-03-20 14:13) [49]


> ElectriC ©   (20.03.07 14:05) [48]


Нет ну ты, ей-богу, придурок) ..


> происходит та же причина


Галиматьища несусветная)

Причина не может "происходить", происходит что-то по такой-то причине ! Т.е., то что произошло является следствием, имеющим некую причину, а не причиной !)


> возвращаю строку в своей программе


У тебя ДВЕ программы !
Одна - ЕХЕ, другая -DLL.
DLL возвращает что-то, а EXE принимает возвращаемое.

Так вот DLL у тебя возвращает число, а EXE с какого-то перепугу интерпретирует то, что она приняла из DLL, как строку.

Дурь ведь !


 
ElectriC ©   (2007-03-20 14:15) [50]


> Так вот DLL у тебя возвращает число

Dll у меня возвращает строку, а не ЧИСЛО!
P.S.

По себе не судят!


 
Сергей М. ©   (2007-03-20 14:18) [51]


> ElectriC ©   (20.03.07 14:15) [50]


> Dll у меня возвращает строку, а не ЧИСЛО!


Врешь, причем нагло)

Result := PChar(12345678901234567890); //так ты возвращаешь именно число

Result := PChar("12345678901234567890"); //а вот так ты возвратил бы именно строку

Ну детский сад прямо ! "Найди отличия" ..)..


 
ElectriC ©   (2007-03-20 17:16) [52]


> Result := PChar("12345678901234567890");

Дак так я и возвращаю строку, просто в описании ошибки я не поставил "12345....". Моя ошибка, признаю!
Всё равно, если так возвращаешь строку то

> что строки содержащие от 1 до 16 символом в Edit.Text отображаются
> нормально, но когда строка содержит от 1 до 17, 18, 19
> символов,  то эти же символы удаляются и вместо них пишется
> строка,  равная 16 символам, а 17, 18, 19 удаляются. Но
> строка от  1 до 20, 21... символов отображается нормально!
>  Так в чём  же дело? Почему именно 17, 18, 19 символы удаляются?


 
Loginov Dmitry ©   (2007-03-20 17:38) [53]

[D7]: Все работает так, как и должно.

Код DLL


library ProjDll;

function Res(i : byte) : PChar; stdcall;
begin
case i of
  1 : Result := PChar("12345678901234567890");
  2 : Result := PChar("123456789012345678");
else
  Result := nil;
end;
end;

exports
 Res;

begin
end.


Код ЕХЕ


unit Unit_Exe;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

function Res(i : byte) : PChar; stdcall; external "ProjDll.dll";

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 Caption := Res(TButton(Sender).Tag); // У кнопок тэги равны 1 и 2 соответственно
end;

end.


Проверь (только без искажений). Должно работать.


 
ElectriC ©   (2007-03-20 17:58) [54]


> Проверь (только без искажений). Должно работать.

Ща проверим!



Страницы: 1 2 вся ветка

Текущий архив: 2007.04.08;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.032 c
1-1171442668
rda
2007-02-14 11:44
2007.04.08
Сохранение вложений в Outlook


15-1173949758
Darvin
2007-03-15 12:09
2007.04.08
Перезагрузка WinXP при попытке работы с устройством


2-1174118231
Boker
2007-03-17 10:57
2007.04.08
TImage - невозможна загрузка ...??


15-1173627016
Petr V.Abramov
2007-03-11 18:30
2007.04.08
PL/SQL Developer и Oracle 10.2.0.2


2-1173887407
kyn66
2007-03-14 18:50
2007.04.08
Работа со сканером штрихкода