Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.042 c
2-1174303935
gvozdkoff
2007-03-19 14:32
2007.04.08
Shape или просто тест


15-1173686090
DevilDevil
2007-03-12 10:54
2007.04.08
FastRound(). Жуть какая :)


2-1174245460
Lik3r
2007-03-18 22:17
2007.04.08
TSearchRec как узнать файл или директория?


3-1168595092
AMS
2007-01-12 12:44
2007.04.08
Сообщение об ошибке в fastreport3.0


2-1174050233
Один
2007-03-16 16:03
2007.04.08
IB7.1 очень большой расход памяти сервером





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский