![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DLL [D7]
ElectriC © (2007-03-20 02:02:00)Имеется Dll и, собственно, программа, к которой Dll подключается.
//----------------------------------------------
Код Dll:
...
function Res(i : byte) : PChar; stdcall;
begin
case i of
1 : Result := PChar(12345678901234567890);
2 : Result := PChar(123456789012345678);
end;
end;
...
exports
Res;
begin
end.
//-----------------------------------------------
Программа имеет компонент Edit : TEdit.
Код программы:
...
public
Res : function(i : byte) : PChar; stdcall;
...
Загрузка Dll и вызов функции;
...
Если Edit.Text := Res(1), то Edit.Text будет иметь вид: 12345678901234567890.
Если же Edit.Text := Res(2), то Edit.Text будет имет вид: 1234567890123456
+ добавляет пробел.
//-----------------------------------------------
Вопрос: Объяcните, пожалуйста, почему пропадает цифра 7 и 8, когда Edit.Text := Res(2)?
ElectriC (2007-03-20 04:16:00) [41]
> то ...
То что?
Германн (2007-03-20 04:13:00) [42]
> ElectriC © (20.03.07 04:02) [11]
>
>
> > Особое внимание на термин "public"!
>
> В каком смысле, "особое внимание"?
>
Если объявление функции Res идёт сразу после зарезервированного слова public, то ...
ElectriC (2007-03-20 04:10:00) [43]Можешь написать, как правильно сделать?
ElectriC (2007-03-20 04:02:00) [44]
> Особое внимание на термин "public"!
В каком смысле, "особое внимание"?
Германн (2007-03-20 04:00:00) [45]Ещё раз
Германн © (20.03.07 03:32) [6]
Особое внимание на термин "public"!
ElectriC (2007-03-20 03:51:00) [46]
> В секции public некоего компонента???
Нет! Только переменые типа byte, string и прочее!
Германн (2007-03-20 03:47:00) [47]
> ElectriC © (20.03.07 03:43) [7]
>
>
> > Res : function(i : byte) : PChar; stdcall;
>
> Объявляю функцию, которую потом загружаю в свою программу
> из Dll
В секции public некоего компонента???
ElectriC (2007-03-20 03:43:00) [48]
> Res : function(i : byte) : PChar; stdcall;
Объявляю функцию, которую потом загружаю в свою программу из Dll
(
Handle : THandle - переменная в которую я загружаю свою Dll
HandleDll := LoadLibrary(PChar('Dll\MyDll.dll');
Res := GetProcAddress(HandleDll, 'Res')
);
Германн (2007-03-20 03:32:00) [49]А что ты имеешь в виду под:
> public
> Res : function(i : byte) : PChar; stdcall;
?
ElectriC (2007-03-20 03:10:00) [50]Проблема в PChar?
ElectriC (2007-03-20 03:08:00) [51]
> Это ты считаешь, что привел текст программы?
А что ещё надо? Основное уж написано!
Не буду ж я приводить весь текст программы, состоящий из 5000 строк.
Германн (2007-03-20 03:06:00) [52]
> Причём тут это!
> Основной текст программы, по которому у меня возникает вопрос,
> я привёл!
> Причём тут "ламеры"?
> Программа имеет компонент Edit : TEdit.
>
> Код программы:
> ...
> public
> Res : function(i : byte) : PChar; stdcall;
> ...
> Загрузка Dll и вызов функции;
> ...
> Если Edit.Text := Res(1), то Edit.Text будет иметь вид:
> 12345678901234567890.
> Если же Edit.Text := Res(2), то Edit.Text будет имет вид:
> 1234567890123456
> + добавляет пробел.
Это ты считаешь, что привел текст программы?
ElectriC (2007-03-20 02:46:00) [53]
> Что программа столь "суперсекретна"
Причём тут это!
Основной текст программы, по которому у меня возникает вопрос, я привёл!
Причём тут "ламеры"?
Германн (2007-03-20 02:11:00) [54]
> Вопрос: Объяcните, пожалуйста, почему пропадает цифра 7
> и 8, когда Edit.Text := Res(2)?
>
"Пойди туда, не знаю куда. Найди то," и т.д.
Что программа столь "суперсекретна", что нельзя привести тут её фрагмент? Или боишься привести, чтобы не "уличили в ламерстве"? Если второе, то научись плевать на тех, кто "уличает"! Они сами "ламеры", причём гораздо более глупые :)