Menu

VB6 et FreeImage

Developers
MATHIEU
2024-11-20
2024-12-31
  • MATHIEU

    MATHIEU - 2024-11-20

    Bonjour,
    Je souhaite utiliser FreeImage dans mes projet en VB6, mais il me dit toujours qu'il ne trouve pas FreeImage.dll
    alors que j'ai bien mis la dll FreeImage.dll (32 bits) dans mon dossier de projet ?

     
  • Johnny Petersen

    Johnny Petersen - 2024-12-31

    Translated into English via Google Translate:

    Hello,
    I want to use FreeImage in my VB6 projects, but it always tells me that it can't find FreeImage.dll
    even though I put the FreeImage.dll dll (32 bits) in my project folder?

     
  • Johnny Petersen

    Johnny Petersen - 2024-12-31

    Please show me how did you call FreeImage which resulted in being told that FreeImage.dll could not be found.

     
  • Carsten Klein

    Carsten Klein - 2024-12-31

    Bonjour Mathieu,

    (unfortunately, my French is much too bad for writing such texts, so I hope you could translate that back to French)

    in Windows, a process searches required shared libraries (e.g. DLLs) at several places in a well defined order. One of these places is the directory, in which the module that is loading the library (DLL) is located. So, putting the FreeImage.dll into your project folder is basically not a bad idea. When you compile your project into an executable (e.g. Project1.exe), by default, this executable is created in your project folder. When this executable starts running, it will find FreeImage.dll easily in its directory.

    In general, it's always a good idea to put FreeImage.dll into the directory, in which your project's executable lives in.

    However, when you run your project from the VB6 IDE (while developing), things are different. In that case, your code is run by VB6 itself, that is, VB6.EXE is your main executable and "runs" your application. That means, in the end, VB6.EXE is also responsible for loading any shared libraries required by your project. To keep it simple, I recommend putting another copy of FreeImage.dll into the directory, in which VB6.EXE is located. On my machine, VB6 is installed here (where VB6.EXE is located):

    C:\Program Files (x86)\Microsoft Visual Studio 6.0\VB98

    That may be different on your machine, but you could always follow the path shown in VB6's start menu entry or desktop icon. Create a copy of FreeImage.dll in that folder.

    After that, your project should run without that specific error even from withing the VB6 IDE.

    Carsten

     
  • Carsten Klein

    Carsten Klein - 2024-12-31

    Giving DeepL a chance (don't know how good that one is, because: Je ne comprends rien):

    Dans Windows, un processus recherche les bibliothèques partagées requises (par exemple les DLL) dans plusieurs endroits, et ce dans un ordre bien défini. L'un de ces endroits est le répertoire dans lequel se trouve le module qui charge la bibliothèque (DLL). Ainsi, placer la FreeImage.dll dans le dossier de votre projet n'est pas une mauvaise idée. Lorsque vous compilez votre projet en un exécutable (par exemple Project1.exe), celui-ci est créé par défaut dans votre dossier de projet. Lorsque cet exécutable démarre, il trouvera facilement FreeImage.dll dans son répertoire.

    En général, il est conseillé de placer FreeImage.dll dans le répertoire où se trouve l'exécutable de votre projet.

    Cependant, lorsque vous exécutez votre projet à partir de l'IDE VB6 (pendant le développement), les choses sont différentes. Dans ce cas, c'est VB6.EXE qui exécute votre code, c'est-à-dire votre exécutable principal, et « exécute » votre application. Cela signifie qu'en fin de compte, VB6.EXE est également responsable du chargement de toutes les bibliothèques partagées nécessaires à votre projet. Pour simplifier les choses, je vous recommande de placer une autre copie de FreeImage.dll dans le répertoire où se trouve VB6.EXE. Sur ma machine, VB6 est installé ici (où se trouve VB6.EXE) :

    C:\Program Files (x86)\Microsoft Visual Studio 6.0\VB98

    Cela peut être différent sur votre machine, mais vous pouvez toujours suivre le chemin indiqué dans le menu de démarrage de VB6 ou dans l'icône du bureau. Créez une copie de FreeImage.dll dans ce dossier.

    Votre projet devrait ensuite s'exécuter sans cette erreur spécifique, même à l'intérieur de l'IDE VB6.

    Carsten

     

Log in to post a comment.

MongoDB Logo MongoDB