DLLs in c:\windows\system32



Hi. I created a windows application which uses gtkmm as GUI. My compiler is mingw. I downloaded a developer environment of gtkmm at http://www.pcpm.ucl.ac.be/~gustin/win32_ports/gtkmm.html. I let the users of my app download and install the runtime environment which is located the same page. My app is only a exe which doens't need to be installed.

For most users my app works fine, but some people get error messages like "The procedure entry point atk_relation_add_target could no be located in the dynamic link library libatk-1.0-0.dll".

The cause of this problem is that there are two dll files of a different version. One file is c:\gtk\bin\libatk-1.0-0.dll, the other is c:\windows\system32\libatk-1.0-0.dll. The first file is installed by the runtime environment. The second by an other application. My app finds the one in system32, but it needs the one in c:\gtk\bin.

A temporary solution is to delete or rename the files in c:\windows\system32, but then some other gtk application doens't work. And I don't expect my users to mess in system directories. Noobs must be able to use my app.

Is it possible that someone changes the software that way that my app looks in the windows registry(HKEY_LOCAL_MACHINE\SOFTWARE\gtkmm\2.4\Path) where gtkmm is installed and uses that dll files, instead of letting windows search for them? An other advantage of that method is that c:\gtk\bin doesn't need to be in the windows path variable.

If that is not possible, is there an other solution for my problem?
You can download my app at http://www.gtagarage.com/mods/show.php?id=811. The comments of the users are also available there.

Thanks in advance.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]