Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Господа GetProcAddress проблема помогите плиз Добавлено: 09.01.07 13:38  

Автор вопроса:  mbkeker
Возникла проблема, не знаю как решить уже 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. Всем спасибо..

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 mbkeker



Вопросов: 1
Ответов: 1
 Профиль | | #1 Добавлено: 09.01.07 13:41
ой пардон строчки [DllImport('kernel32.dll')]
 нету случайно затисалась

Ответить

Номер ответа: 2
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #2 Добавлено: 10.01.07 12:49
Что-то мне сдается, что ты пытаешься вызвать обычный метод как статический.

@MtCreate:= IntPtr.toPointer(GetProcAddress(HLib, 'MtCreate'));

Может быть должно быть так:

@MtCreate:= toPointer(GetProcAddress(HLib, 'MtCreate')).ToPointer;

З.Ы. Точность синтаксиса не гарантирую ибо Delphi.NET не относятся к тем языкам, что я знаю в совершенстве.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам