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

Вниз

Почему не работает?   Найти похожие ветки 

 
Vinivor   (2002-04-11 12:10) [0]

Привет всем!
Помогите чайнику плз %)

////////////////// roll.dll ///////////////////////////////
library roll;
uses
windows, Registry;
var reg:Tregistry;

function read_regedit_str(root_key:HKEY; reg_path,name_param:string):string; stdcall;
begin
Reg:=TRegistry.Create;
With Reg do
Try
Begin
RootKey:=root_key;
OpenKey(reg_path,true);
If ValueExists(name_param) then
Result:=Readstring(name_param);
CloseKey;
End;
Reg.CloseKey;
finally
Reg.Free;
end;
end;
exports read_regedit_str;

begin
end.

////////////////////////////////////////////////////////////////

////////////// use_roll.exe /////////////////////
unit Unit1;

interface

uses
Windows, Forms, registry, StdCtrls, Controls, Classes, sysutils,
ExtCtrls;

type --
TForm1 = class(TForm)
str: TButton;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
reg:tregistry;
implementation

function read_regedit_str(root:HKEY; reg_path,name_param:string):string stdcall; external "roll.dll";

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
label1.Caption:=read_regedit_str(HKEY_CURRENT_USER,"\Software\Microsoft\ Notepad","lfFaceName");
end;

end.
/////////////////////////////////////////////////////////////////

Не работает, и не пойму почему? Boolean и float работают, а string не хочет

Жду ответов :)


 
Виктор Щербаков   (2002-04-11 12:14) [1]

В файле проекта roll и use_roll и хоста в uses на первом месте запиши модуль ShareMem.
Но при распространении приложения придется таскать за ним bordmm.dll.


 
SVM   (2002-04-11 12:15) [2]

А кто же строки передает из DLL? Или PChar (ShortString),
или (цитата из файла проекта):

{ 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. }



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

Форум: "Основная";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
1-80947
snoup
2002-04-11 22:55
2002.04.25
Дайти кто-нибудь простинький кодик как сделать кнопку круглой?


3-80771
Леонид
2002-04-04 10:08
2002.04.25
Кнопка поля просмотра в TDBGrid


14-81059
limon
2002-03-20 10:59
2002.04.25
Юбилей: компьютерной мышке 50 лет


6-81017
Arlekin17
2002-02-14 17:57
2002.04.25
Пожалуйста объясните как работает BROADCAST.....


3-80806
B_A_V
2002-04-05 12:07
2002.04.25
Правое контекстное меню





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский