Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
ВнизСоздание Dll Найти похожие ветки
← →
Sergo © (2005-02-08 16:54) [0]Уважаемые!!! Помогите, плиз...
При вызове процедуры Translate из Dll вылетает Access Violation. Если не передавать параметры в процедуру, а жестко прописать значение для записи в реестр в самой процедуре, то все нормально. Я первый раз пишу Dll подскажите пожалуйста...library Project1;
{ 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. }
uses
SysUtils,
Registry,
ShellApi,
Classes,
windows;
var
reg:TRegistry;
{$R *.res}
Function GetHandle(Name:string):HMODULE;stdcall;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey("SOFTWARE\E&L",true);
GetHandle:=reg.ReadInteger(Name);
reg.CloseKey;
reg.Free;
end;
Procedure SetHandle({Name:string; }Handle:integer);stdcall;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey("SOFTWARE\E&L",true);
reg.WriteInteger("MapInfo",Handle);
reg.CloseKey;
reg.Free;
end;
function ReTranslate:string; stdcall;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey("SOFTWARE\E&L",true);
ReTranslate:=reg.ReadString("ID");
reg.CloseKey;
reg.Free;
end;
procedure Translate(ID:String); stdcall;export;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey("SOFTWARE\E&L",true);
reg.WriteString("ID",ID);
reg.CloseKey;
reg.Free;
end;
exports Translate, ReTranslate, SetHandle, GetHandle;
begin
end.
← →
Алхимик © (2005-02-08 17:02) [1]Переведи то что в фигурных скобочках и будет счастье.
← →
Lord Zmiy © (2005-02-08 17:21) [2]Во первых не юзай строку в библиотеках
во вторых покажи код где ты библиотеку вызываешь
← →
GanibalLector © (2005-02-08 17:30) [3]Замени все string на pchar.и наступит счастье ;)
← →
Anatoly Podgoretsky © (2005-02-08 17:53) [4]Не делай ДЛЛ и наступит полное счастье.
← →
Джинн (2005-02-08 18:15) [5]Это для кого написано: "ShareMem must be the first unit in your library"s USES clause AND your project"s"?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c