Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

Помогите переделать статистичн. вызов DLL в динамичный.   Найти похожие ветки 

 
rolex   (2005-08-27 22:57) [0]

Вот так функция вызывается статистически:

function GetProfilesDirectory:string;
function ProfilesDirectory_Exp(lpProfilesDir:PChar; var lpcchSize:DWord):Bool;
stdcall; external "userenv.dll" name "GetProfilesDirectoryA";

var szBuffer:array[0..MAX_PATH] of Char; dwSize:DWord;
begin
dwSize := MAX_PATH;
if ProfilesDirectory_Exp(szBuffer, dwSize) then result:=szBuffer;
end;


А как сделать динамический? Делаю так:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TProfi = function(lpProfilesDir: PChar; var lpcchSize: DWord): Bool;

 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

function GetProfilesDirectory: string;
var
 hndDLLHandle: THandle;
 Profi: TProfi;
 szBuffer: array[0..MAX_PATH] of Char; dwSize: DWord;
begin
 dwSize := MAX_PATH;
 Result:="";
 try
   hndDLLHandle := loadLibrary("userenv.dll");
   if hndDLLHandle <> 0 then
   begin
     @Profi := getProcAddress(hndDLLHandle, "GetProfilesDirectoryA");
     if addr(Profi) <> nil then
     begin
       Profi(szBuffer, dwSize);
       Result := szBuffer;
     end;
   end;
 finally
   freeLibrary(hndDLLHandle);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
caption:=GetProfilesDirectory;
end;

end.


Ничего не вышло (кроме ошибки :) ).


 
DiamondShark ©   (2005-08-27 23:35) [1]


> type
>  TProfi = function(lpProfilesDir: PChar; var lpcchSize:
> DWord): Bool;

TProfi = function(lpProfilesDir: PChar; var lpcchSize: DWord): Bool; stdcall;


 
rolex   (2005-08-28 12:42) [2]

спасибо огромное!



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

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.071 c
14-1124489428
TG
2005-08-20 02:10
2005.09.18
КОМПИЛЯТОР


14-1124833465
desam
2005-08-24 01:44
2005.09.18
Зацените!


14-1124725264
Santrope
2005-08-22 19:41
2005.09.18
Посоветуйте прогу аля msconfig ?


3-1122964892
MakNik
2005-08-02 10:41
2005.09.18
обновление dxDBGrid...


14-1124825507
TStas
2005-08-23 23:31
2005.09.18
Кто сколько времени потратил на самостоятельное изучение Делфи?