libmysql.dll Windows

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
nevermore2k
Beiträge: 76
Registriert: Sa 1. Mai 2021, 15:39

libmysql.dll Windows

Beitrag von nevermore2k »

Hallo,
Ich bin selten in Windows unterwegs, und habe daher jetzt ein kleines problem. Ich habe eine kleine Anwendung geschrieben die ich jetzt unter Linux auch für Windows Kompiliert habe. Die soll auf eine Maria DB zugreifen ( mysql connection habe ich genutzt). Unter Linux kein problem.
Unter Windows kommt beim ausführen die Meldung "Can not load default MySQL library ("libmysql.dll"). Ich habe allerdings den Mysql C connector was auch immer installiert, und eine libmysql.dll die ich aus einem alten packet habe in den System32 geworfen.
Das Programm ist sehr unbeeindruckt davon.
Dann habe ich Lazarus unter Windows installiert und mal versucht darüber die SQL Komponenten zu nutzen... lazarus bringt genau die selbe Meldung...

Bin jetzt bisschen mit meinem latein zu ende, da alles was ich gefunden habe im Netz zu diesem Thema war "schiebe die dll in den System32 ordner"

wp_xyz
Beiträge: 3746
Registriert: Fr 8. Apr 2011, 09:01

Re: libmysql.dll Windows

Beitrag von wp_xyz »

Nachdem der Name der libmysql.dll nicht unterscheidet, ob du die Version für 32-bit oder 64-bit hast, könnte hier das Problem liegen. Verwendest du die 64-bit IDE von Lazarus (was wird in "Hilfe" > "Über Lazarus" angezeigt? x86_64-win64-win32/win64 --> 64-bit, i386-win32-win32/win64 --> 32 bit)? Wenn ja, erzeugst du eine 64-bit exe und brauchst die 64-bit-Version der dll - diese kopierst du nach c:\Windows\System32. Wenn nein, kopierst du die 32-bit Version der dll nach c:\Widnows\SysWOW64! "Logisch", oder?

nevermore2k
Beiträge: 76
Registriert: Sa 1. Mai 2021, 15:39

Re: libmysql.dll Windows

Beitrag von nevermore2k »

hm ok, also irgendwie finde ich keine 64bit version von libmysql.dll d.h. wohl das ich die Anwendung nochmal in 32bit kompilieren muss wohl. Danke für deine Antwort =)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4609
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: libmysql.dll Windows

Beitrag von af0815 »

Einmal ins Lazarusverzeichnis - mit der richtigen Bitness für Lazarus. Und einmal dorthin, wo deine erzeugte Exe liegt, dort auch mit der richtigen Bitness.

Im Verzeichnis von Lazarus für die Designzeit und ins andere Verzeichnis für die Laufzeit.


Für die Infos zu Bitness verwende ich oft PESP https://github.com/stievie/pesp . Das kann man sich selbst kompilieren und man schleppt sich nichts ins System.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
six1
Beiträge: 403
Registriert: Do 1. Jul 2010, 19:01

Re: libmysql.dll Windows

Beitrag von six1 »

Gruß, Michael

nevermore2k
Beiträge: 76
Registriert: Sa 1. Mai 2021, 15:39

Re: libmysql.dll Windows

Beitrag von nevermore2k »

hm ok irgendwie bekomme ich lazarus oder eine von linux aus kompilierte app nicht dazu mysql zu finden unter windows :/ obwohl eigentlich alles richtig liegt system32 die 64 bit dll und in syswow die 32 bit dll usw.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4609
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: libmysql.dll Windows

Beitrag von af0815 »

Wer sagt, das die dort gefunden wird ? Teste mal ob es funktioniert, wenn die dlls dort sind wo ich geschrieben habe.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
six1
Beiträge: 403
Registriert: Do 1. Jul 2010, 19:01

Re: libmysql.dll Windows

Beitrag von six1 »

nevermore2k hat geschrieben:
Do 13. Mai 2021, 11:45
hm ok irgendwie bekomme ich lazarus oder eine von linux aus kompilierte app nicht dazu mysql zu finden unter windows :/ obwohl eigentlich alles richtig liegt system32 die 64 bit dll und in syswow die 32 bit dll usw.
In System32 muss die 32Bit und in Syswow die 64Bit DLL !
Ich würde dir empfehlen, die richtige DLL zu deinem Programm zu legen und in das Lazarus Basisverzeichnis (wie bereits erwähnt wurde!)
Gruß, Michael

wp_xyz
Beiträge: 3746
Registriert: Fr 8. Apr 2011, 09:01

Re: libmysql.dll Windows

Beitrag von wp_xyz »

six1 hat geschrieben:
Do 13. Mai 2021, 16:36
nevermore2k hat geschrieben:
Do 13. Mai 2021, 11:45
hm ok irgendwie bekomme ich lazarus oder eine von linux aus kompilierte app nicht dazu mysql zu finden unter windows :/ obwohl eigentlich alles richtig liegt system32 die 64 bit dll und in syswow die 32 bit dll usw.
In System32 muss die 32Bit und in Syswow die 64Bit DLL !
Ich würde dir empfehlen, die richtige DLL zu deinem Programm zu legen und in das Lazarus Basisverzeichnis (wie bereits erwähnt wurde!)
Nein, genau andersherum, das ist ja der ganze Unsinn. (z.B. https://de.phhsnews.com/what-s-differen ... indows5769).

nevermore2k
Beiträge: 76
Registriert: Sa 1. Mai 2021, 15:39

Re: libmysql.dll Windows

Beitrag von nevermore2k »

scheint alles nichts zu bringen hmm. keinen schimmer wo lazarus die dll sucht, aber nicht am richtigen ort.

nevermore2k
Beiträge: 76
Registriert: Sa 1. Mai 2021, 15:39

Re: libmysql.dll Windows

Beitrag von nevermore2k »

MS Visual C++ 2013 Redistributable x64

muss installiert werden. jetzt geht es :)

https://www.microsoft.com/de-de/downloa ... x?id=40784

PascalDragon
Beiträge: 311
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: libmysql.dll Windows

Beitrag von PascalDragon »

six1 hat geschrieben:
Do 13. Mai 2021, 16:36
nevermore2k hat geschrieben:
Do 13. Mai 2021, 11:45
hm ok irgendwie bekomme ich lazarus oder eine von linux aus kompilierte app nicht dazu mysql zu finden unter windows :/ obwohl eigentlich alles richtig liegt system32 die 64 bit dll und in syswow die 32 bit dll usw.
In System32 muss die 32Bit und in Syswow die 64Bit DLL !
Falsch!

Das System32 Verzeichnis ist immer das Verzeichnis, das zur Bitness von Windows passt (damit eine Anwendung, die einfach für 64-bit kompiliert wird, keine Anpassungen braucht).

Unter einem x86_64 Windows hast du dann noch das SysWOW64 Verzeichnis, was für Windows on Windows 64 steht. Auf einem ARM64 Windows hast du dann ebenfalls im SysWOW64 Verzeichnis die i386 Bibliotheken und Anwendungen und im SysArm32 Verzeichnis die 32-bit ARM Bibliotheken und Anwendungen.

Diese alternativen Sys*-Verzeichnisse werden dann von Windows für einen entsprechenden Prozess virtuell als System32 eingeblendet, so lange der Prozess die Redirection nicht deaktiviert hat.
FPC Compiler Entwickler

Benutzeravatar
six1
Beiträge: 403
Registriert: Do 1. Jul 2010, 19:01

Re: libmysql.dll Windows

Beitrag von six1 »

ah, ok... wieder was gelernt...
wobei ich das bestimmt wieder vergesse, da ich mir angewöhnt habe, die nötigen DLLs zur Anwendung zu legen. ( ohne das jetzt darüber ein Glaubenskrieg entflammen muss!)
Gruß, Michael

Antworten