Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизРуссификация dll Найти похожие ветки
← →
FragMan (2004-06-05 10:19) [0]Люди!!! КТО ЗНАКОМ С dll помогите пожалуйста!
Проблема такая! В dll-ке делаю string функцию
function R1: string; stdcall
begin
Result := "Проверка";
end;
и вызываю её в программе:
...
implementation
function R1:string; stdcall external
"project1.dll";
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=R1;
end;
end.
---------------------
Если перед компиляции dll вот в этом коде
function R1: string; stdcall
begin
Result := "Проверка";
end;
вместо русских символов слова "Проверка" написать латинские к примеру: "Provierka", то всё работает!!!
А ВЕДЬ НАДО ПО-РУССКИ!
-------------
Нужен Х Е Л П! Что делать!?
Кто хоть чуточку знает dll помогите ПЛЗ! Столько уже сделал, для подключения dll и осалась такая маленькая вещь, загвоздка ну вот и столкнулся как на зло с проблемой...
← →
Mim1 © (2004-06-05 10:47) [1]Учиться правильно задавать вопрос. В чем дело то?
← →
FragMan (2004-06-05 11:05) [2]> Mim1 ©
Дело в том, что когда я вызываю из своей программы функцию dll, а именно возвращаю значение функции в Tedit выдаётся ошибка! Invalid Pointer Operation
Мучался долго долго, аж всю ночь! разобрался! Оказалось, что если внутри dll поменять значение строкового параметра с (Result := "Проверка") на (Result := "Chego-nibud po anglisky") то после компиляции dll всё нормально работает!
А надо, чтобы было по-русски Result := "Проверка"
← →
Mim1 © (2004-06-05 11:09) [3]С комментарием при создании библиотеки ознакомился?
← →
NikotiN © (2004-06-05 11:25) [4]Маленькая подсказка:
result:=PChar("что нибудь по русски");
и, правда, прочитай комментарий в библиотеке.
← →
FragMan (2004-06-05 11:28) [5]Вот с этими?
{ Important note about DLL memory management: ShareMem must be the first unit in your library"s USES clause AND your project"s (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters. }
Ознакомился! Честно говоря, не понял ничего единственное, что смог нормально понять - это последнее предложение в котором говорится о том, что если у вас ничего не получилось, по попробуйте PChar или ShortString параметры
:) Пробовал :) опять не получается!
← →
FragMan (2004-06-05 11:31) [6]> NikotiN ©
Мдя, а теперь вообще выпрыгивает debuger и пишет access violation error :/
...
← →
FragMan (2004-06-05 11:38) [7]function R1: string; stdcall
begin
result:=PChar("русский язык");
end;
Ну вот так вот получилось, как говорили ... в Tedit всё вписывается, но тут же вылетает ошибка!
Invalid Pointer Operation
НО... если раньше указатель ошибки ставился на слово begin, то теперь он ставится на слово end :( теперь я совсем ничего не понял :(
program UseDll;
uses
Forms,
Use in "Use.pas" {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
-> end.
Вот такую картину наблюдаю :(
PS: -> это указатель на ошибку
← →
Алхимик © (2004-06-05 12:02) [8]{ Important note about DLL memory management: ShareMem must be the first unit in your library"s USES clause AND your project"s (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters. }
← →
FragMan (2004-06-05 12:14) [9]Всё рулиз!!! вездё всё работает :)
С Ы П А С Ы Б О!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.029 c