Возникла проблема, не знаю как решить уже 5 дней гемороюсь что делать не знаю...
вот пример:
unit WebForm1;
interface
uses
System.Collections, System.ComponentModel,wintypes,windows,
System.Runtime.InteropServices,
System.Data, System.Drawing, System.Web, System.Web.SessionState,
System.Web.UI, System.Web.UI.WebControls, System.Web.UI.HtmlControls;
type
TMtCreate = function () : integer;
TWebForm1 = class(System.Web.UI.Page)
{$REGION 'Designer Managed Code'}
strict private
procedure InitializeComponent;
procedure Button1_Click(sender: System.Object; e: System.EventArgs);
{$ENDREGION}
strict private
procedure Page_Load(sender: System.Object; e: System.EventArgs);
strict protected
Label1: System.Web.UI.WebControls.Label;
Button1: System.Web.UI.WebControls.Button;
procedure OnInit(e: EventArgs); override;
private
{ Private Declarations }
public
{ Public Declarations }
end;
var
HLib: THandle;
MtCreate: TMtCreate;
implementation
{$REGION 'Designer Managed Code'}
/// <summary>
/// Required method for Designer support -- do not modify
/// the contents of this method with the code editor.
/// </summary>
procedure TWebForm1.InitializeComponent;
begin
Include(Self.Button1.Click, Self.Button1_Click);
Include(Self.Load, Self.Page_Load);
end;
{$ENDREGION}
procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
begin
// TODO: Put user code to initialize the page here
end;
procedure TWebForm1.OnInit(e: EventArgs);
begin
//
// Required for Designer support
//
InitializeComponent;
inherited OnInit(e);
end;
procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
begin
[DllImport('kernel32.dll')]
HLib:=LoadLibrary('C:\mtapi2.dll');
if HLib > 32
then begin
@MtCreate:= IntPtr.toPointer(GetProcAddress(HLib, 'MtCreate'));
Label1.Text:=convert.tostring(MtCreate);
end;
end;
end.
жас в том что у меня @MtCreate = null reference . Я понял что GetProcAddress не работает поскольку возвращает IntPtr чтоб ему пусто было а IntPtr почему-то не преобразуется в Pointer почему не знаю ? короче говоря не работает такой код кто знает почему? Пишу на Delphi . net. Всем спасибо..
Ответить
|