FireBird 2.5 -> Unable to load midas.dll
2013-10-01T19:30:54+02:00
2018-02-14T09:06:56+01:00
2022-08-11T00:00:43+02:00
kardosi
Helló srácok!

Ma sikerült "beletenyerelni" egy érdekes problémába!

Röviden:
A számlázó programom FireBird adatbázist használ, eddig a 2.0.3 verzió volt...
Úgy gondoltam, éppen ideje váltani a 2.5 verzióra...
Annak rendje és módja szerint az eredeti (2.0) verzióval csináltam backupot, majd FB2.0 uninstall, FB2.5 install és immár a 2.5 verzió alatt az IBExperttel -> Restore.
Eddig minden OK!

DE!

Mivel használok ClientDataset-et is a programomban, ehhez kell a midas.dll...

win7, windows server sbs 2008-on sikerült is az "átállás" (több helyen), azonban az egyik helyen, ahol xp van, átállás után indítom a programomat és visszaugat -> "Unable to load midas.dll"

Van tippetek, mi ennek az oka? Merre keressem a megoldást?
Még egy dolog!
Szívem szerint név szerint "reklámot csinálnék" annak a cégnek, aki az ominózus helyen feltelepített egy FB2.0-át! Arról van szó, hogy 2011-ig használták a programjukat, majd megváltak tőlük... Az adott xp-s gépen szabályosan uninstalláltam az FB2.0-át, de pl. az FB2.0 "vezérlőpultját" nem szedte le!!!
(Fogtam, töröltem "szőröstől-bőröstől" az FB2.0 könyvtárát (uninstall után, már ami maradt...))
Lehet, hogy ez "kavart be?"

Még annyit, hogy a midas.dll minden esetben ott van az exe mellett!
Mutasd a teljes hozzászólást!
dpr be


uses MidasLib, Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.

igy beforditja a midas.dll t az alakalmazasba.Elég régi dolog ez,itt a forumon is talalsz erre megoldast
Mutasd a teljes hozzászólást!

  • Regisztrálva van az XP-én?
    regsvr32.exe c:\windows\system32\midas.dll
    Itt is írnak a problémáról:
    Cannot load Midas.dll - Delphi 2010 on Windows 7 Professional XP hasonló oka lehet.
    Még valami.
    32 bites programot nem lehet keveri 64 bitessel, és fordítva.
    Mutasd a teljes hozzászólást!
  • Még annyit, hogy a midas.dll minden esetben ott van az exe mellett!


    Ez igazából szerintem nem elég... Egy kis nyomozás után nekem úgy tűnik, hogy a kifogásolt .dll egy InprocServer32 - vagyis elképzelhető, hogy már regisztrálva van, de a regisztrációs adatbázisban tárolt útvonalon nem található ez a .dll. Amúgy pedig nekem úgy tűnt, hogyha nem lenne regisztrálva, akkor megpróbálja ezt megtenni.
    Ellenőrizd, hogy hová is mutat a regisztráció és tedd oda vagy regisztráld újra! Ha pedig esetleg valami egyéb miatt az elérési út pl. egy másik gépre mutat, akkor az további gondokat is okozhat...
    Mutasd a teljes hozzászólást!
  • Nagyon szépen köszönöm a választ mindenkinek!

    Oldboys megoldását ki fogom próbálni!

    Ideiglenesen az adott xp-s gépen visszaraktam az FB2.0-át és érdekes módon azzal probléma nélkül megy a programom!

    32 bites programot nem lehet keveri 64 bitessel, és fordítva.

    32 bites FB2.5-öt telepítettem! A midas.dll pedig -szerintem- 32 bites...

    elképzelhető, hogy már regisztrálva van, de a regisztrációs adatbázisban tárolt útvonalon nem található ez a .dll

    Meg fogom ezt is nézni! Holtig tanul az ember...
    (De akkor az FB2.0-val miért működik?)
    Mutasd a teljes hozzászólást!
  • Az egyik helyen ez a módszer segített!

    Poén, hogy jópár programban én is használom, amit javasoltál, ennél "elbambáztam"!

    Még egy helyen leellenőrzőm...
    Mutasd a teljes hozzászólást!
  • az FB2.0-val miért működik?


    A hibaüzenet mindenképpen arra utal, hogy a kérdéses .dll-t nem tudja valami miatt betölteni! Sajnos ez nem feltétlenül jelenti azt, hogy magát a file-t nem találja, hanem talán még azt is, hogy valamelyik másik közvetve használt .dll-t nem tudja betölteni. Továbbá előfordulhat olyan is, hogy pl. a belépési pont függvénye (DllMain) hamis értékkel tért vissza. Bár ez utóbbinak a valószínűsége elég kicsi.
    Viszont régebben itt is volt már hasonló téma.
    Mutasd a teljes hozzászólást!
  • Keresd meg a registry-ben hova mutat a midas.dll elérési útja, és oda másold be.
    alapesetben a system32!
    Mutasd a teljes hozzászólást!
  • Tökéletesen megoldja a problémát!

    Csak ma volt lehetőségem xp-s gépeken kipróbálni...
    Másik dolog, hogy mindig az exe mellé tettem a midas.dll-t és működött...
    Valószínű, hogy a programom első indításakor az xp regisztrálja a dll-t! (Az biztos, hogy én nem tettem!) Méghozzá arra a könytárra mutatva, ahol eredetileg volt, azaz, ha az eredeti könytvtárból elmozgatom a dll-t egy másik könyvtárba, akkor már hiába van az exe mellett!

    Win7-es gépen nem tapasztaltam a problémát!

    Köszönöm a segítséget és a hasznos információkat!

    Mutasd a teljes hozzászólást!
  • Win7-es gépen nem tapasztaltam a problémát!


    Bizonyára az UAC miatt már eleve kudarcba fulladt a regisztráció... XP-n is ha mindig csak korlátozott jogú felhasználóként lett volna elindítva, akkor ott is hasonló módon alakulhatna... A magyarázat egyszerű, amelyet a DSIntf.pas-ban található CheckDbClient eljárás tanulmányozása tehet világossá (pl. Delphi 2006 esetén).
    Egyébként pedig egyszerű módon lehet elérni, hogy mindig az alkalmazás mellé bemásolt midas.dll legyen használatban (természetesen csak akkor, ha az ember nem kívánja az .exe-be belefordítani). Ennek a nyitja pedig a RegisterMidasLib eljárás. Persze garantálni kell, hogy az automatikus regisztrációs folyamat előtt történjen meg a hívása!
    Mutasd a teljes hozzászólást!
  • Köszönöm én DSS-al szívtam a szerveren régi MIDAS.DLL volt és Update már nem futott le 3 napig szívtam vele.



    Még egyszer Köszi a tippet!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd