AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Problem beim Laden einer DLL zur Laufzeit

Problem beim Laden einer DLL zur Laufzeit

Ein Thema von magicshadow · begonnen am 4. Jun 2003 · letzter Beitrag vom 4. Jun 2003
 
magicshadow

Registriert seit: 28. Apr 2003
85 Beiträge
 
#1

Problem beim Laden einer DLL zur Laufzeit

  Alt 4. Jun 2003, 09:26
Hallöchen!
Ich hab ein "kleines" Problem mit dem Laden einer DLL.

mal direkt meine codes:

gleichbleibende Deklarationen:
Code:
const
  RAS_MaxDeviceType = 16;
  RAS_MaxEntryName = 256;
  RAS_MaxDeviceName = 128;
type
{$IFNDEF UNICODE}
    TCHAR = type Char;
  {$ELSE}
    TCHAR = type WideChar;
  {$ENDIF}
  RAS_STATS = packed record
   dwSize               : DWORD;
   dwBytesXmited        : DWORD;
   dwBytesRcved         : DWORD;
   dwFramesXmited       : DWORD;
   dwFramesRcved        : DWORD;
   dwCrcErr             : DWORD;
   dwTimeoutErr         : DWORD;
   dwAlignmentErr       : DWORD;
   dwHardwareOverrunErr : DWORD;
   dwFramingErr         : DWORD;
   dwBufferOverrunErr   : DWORD;
   dwCompressionRatioIn : DWORD;
   dwCompressionRatioOut : DWORD;
   dwBps                : DWORD;
   dwConnectDuration    : DWORD;
  end;

 PRasConnA = ^PRasConn;
 PRasConnW = ^PRasConn;
 PRasConn = record
    dwSize      : DWORD;
    hrasconn    : DWORD;
    szEntryName : array [0..RAS_MaxEntryName] of Char;
    szDeviceType : array [0..RAS_MaxDeviceType] of Char;
    szDeviceName : array [0..RAS_MaxDeviceName] of Char;
 end;
Die eigentliche Funktionbleibt gleich)
Code:
Procedure GetSystemParams;
var Res,lpcb,NumberOfEntries :DWORD;
    Entries                 :array[0..255] of PRasConn;
    mystats                 :RAS_STATS;
    i                       :DWORD;
    bytesdown,bytesup       :Cardinal;
begin
 Entries[0].dwsize:=412;
 lpcb:=256*Entries[0].dwsize;
 NumberOfEntries:=0;
 Res := RasEnumConnections(Entries[0], lpcb, NumberOfEntries);
 mystats.dwsize:=sizeof(mystats);
 bytesup:=0;
 bytesdown:=0;
 for i:=0 to NumberOfEntries-1 do begin
    Res:= RasGetConnectionStatistics(Entries[i].hrasconn,mystats);
    bytesdown:=bytesdown+mystats.dwBytesRcved;
    bytesup:=bytesup+mystats.dwBytesXmited;
 end;
end;
Laden zum Startzeitpunktfunktioniert)
Code:
function RasEnumConnections(var lprasconn : PRasConn; var lpcb : DWORD; var lpcconnections : DWORD) : DWORD; stdcall; external 'RasApi32.dll' name 'RasEnumConnectionsA';
function RasGetConnectionStatistics(const hRasConn : DWORD;const lpStatistics : RAS_STATS) : DWORD; stdcall; external 'RasApi32.dll';
Laden zur Laufzeit (erste Funktion): (funktioniert nicht)
Code:
function RasEnumConnections(var lprasconn : PRasConn; var lpcb : DWORD; var lpcconnections : DWORD) : DWORD;
 var REC:TREC;
     Handle:THandle;
 begin
     Handle:=LoadLibrary('RasApi32.dll');
     if handle<>0 then begin
         @REC:= GetProcAddress(Handle,'RasEnumConnectionsA');
         if @REC<>nil then begin
             result:=REC(lprasconn,lpcb,lpcconnections);
         end;
         freeLibrary(Handle);
     end;
 end;
Mein Problem sind nun die Parameter, da diese ja ausgefüllt zurückgegeben werden müßten. Dies geschiet aber nicht!

Wäre super wenn jemand wüßte wie man dies erreichen kann?
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz