AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL Problem auf englischem OS

Ein Thema von soulies · begonnen am 1. Mär 2008 · letzter Beitrag vom 3. Mär 2008
Antwort Antwort
Seite 1 von 3  1 23      
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#1

DLL Problem auf englischem OS

  Alt 1. Mär 2008, 16:44
hoi,

für folgendes Problem benötige ich eine Hilfestellung ...


ich hab ein programm entworfen das mit hilfe einer schnittstellen-unit
bestimmte funktionen einer DLL aufruft.
delphi 7 ent, win xp ger
funktioniert alles ohne probleme ...


starte ich nun aber das programm auf einem us notebook mit win xp eng dann
bekomme ich eine Fehlermeldung mit einer Zugriffsverletzung

die DLL wird über LoadLibrary(..) geladen

ich vermute das die DLL nicht geladen wird - ich eine funktionen der dll aufrufe -
und denn die Zugriffsverletzung als Fehler kommt ...

ich weiß nicht weiter - ihr ?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: DLL Problem auf englischem OS

  Alt 1. Mär 2008, 16:47
Wenn du eine Zugriffsverletzung bekommst deutet das darauf hinn das du nicht prüfst ob die DLL geladen werden konnte und auch nicht prüfst ob die Funktion in der DLL gefunden wurde. Baue da am besten eine Prüfung ein und gebe aussagekräftige Fehlermeldungen ein
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#3

Re: DLL Problem auf englischem OS

  Alt 1. Mär 2008, 17:49
habe nun herausgefunden das das DLLhandle (dllhandle := loadlibrary(pchar(...)))

auf dem eng-OS immer 0 ist

bisher wurde auf (dllhandle >= 32) geprüft - kann/sollte ich es ändern auf (dllhandle=0)


[info]
die dll und die schnittstellen unit kommen von einer fremdfirma
[/info]
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

Re: DLL Problem auf englischem OS

  Alt 1. Mär 2008, 18:18
Zitat von Win32 SDK zu LoadLibrary:
If the function succeeds, the return value is a handle to the module.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
Wieso 32? Hast Du das mit ShellExecute verwechselt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#5

Re: DLL Problem auf englischem OS

  Alt 1. Mär 2008, 19:10
wie gesagt kommt die dll und die unit nicht von mir ...

dllhandle >=32 war quasi drin - habe ich nun geändert auf dllhandle <> 0

mit getlasterror bekomm ich auch ne vernünftige meldung - das ist ok


aber ich versteh im prinzip nicht warum alles ok ist bei einem ger-PC mit ger-OS

und bei einem eng-PC und eng-OS nicht mehr

--> die dateien & pfade sind alle identisch ...


aber erstmal danke an euch für jeden hinweis bis hierher
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: DLL Problem auf englischem OS

  Alt 1. Mär 2008, 19:19
aber wenn dir dort 0 zurück gegeben wird scheint es die DLL nicht zu geben oder sie ist nicht registriert. Vielleicht ist auf dem englischen System ein bestimmtes Update nicht installiert oder dergleichen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: DLL Problem auf englischem OS

  Alt 1. Mär 2008, 21:54
Zitat von soulies:
mit getlasterror bekomm ich auch ne vernünftige meldung - das ist ok
Zeig uns mal deinen Code, wo der Fehler und was für ein Fehler (GetLastError) kommt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: DLL Problem auf englischem OS

  Alt 1. Mär 2008, 22:20
Evtl. hat ja auch der Hersteller der DLL/Schnittstellen-Unit mist gemacht und setzt z.B. C:\Programme als Installationspfad von Programmen vorraus und entläd die DLL sofort wieder wenns nicht passt. Was sagt denn der Hersteller der DLL dazu?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#9

Re: DLL Problem auf englischem OS

  Alt 2. Mär 2008, 01:06
die fehlermeldung lautet:
Zitat:
This application failed to start because ScanCtrl2.dll was not found. Re-installing the application may fix the problem.
der aufruf sieht wie folgt aus:

Delphi-Quellcode:
  unit ScanCtrl2;

  ...

  const
   LibraryName = 'ScanCtrl2.dll';

  ...

  DLLHandle: THandle;

  ...

  procedure LoadDLL;
  begin
    try
      DLLHandle := LoadLibrary(Pchar(LibraryName));

      if (DLLHandle <> 0) then
       begin
        ...
       end
      // Error: ScanCtrl2.dll kann nicht geladen werden !!
      else
       begin
        messagedlg(SysErrorMessage(getlasterror),mterror,[mbok],0); // hier kommt da fehler da dllhandle=0
        ...
      end;
    except
      on E:Exception do
      messagedlg(E.Message,mterror,[mbok],0);
    end;
  end;

begin
  LoadDLL;
end.

den hersteller habe ich NOCH nicht kontaktiert ...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: DLL Problem auf englischem OS

  Alt 2. Mär 2008, 01:21
DLLHandle := LoadLibrary(Pchar(LibraryName)); Öhm, und in welchem Verzeichnis soll dein Programm die DLL finden?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 04:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz