SneakyPeaky99 0 Posted October 24, 2023 Hello, i am trying to run a program and this type of error is displayed. Can anyone tell me what can i do fix it? I tried: - Process Explorer to find if any dlls are missing (compared to working app installer of this project which is very old) - all good but i dont this program shows all of the dll used by this process. - Dependency Walker - same thing - Looking for this entry in win registry - nothing found - Searching internet - nothing related Below i pasted information where exception is thrown, and some information regarding this problem. Thank you. Share this post Link to post
Kas Ob. 121 Posted October 24, 2023 12 minutes ago, SneakyPeaky99 said: Can anyone tell me what can i do fix it? Did you register that DLL with that specific class ? You listed what you did but did not mention if it is registered for fact, loading a DLL doesn't mean the COM component is registered or known for the system. as for search the internet, you should search for the error message first then try the GUID for that specific class, try "windows register com dll class" or something else and find how hard complex it is to register one. Share this post Link to post
SneakyPeaky99 0 Posted October 24, 2023 The problem is that i dont know what is the name of that DLL. Share this post Link to post
Kas Ob. 121 Posted October 24, 2023 1 minute ago, SneakyPeaky99 said: The problem is that i dont know what is the name of that DLL. Then try to register them all, no harm from that. Share this post Link to post
Kas Ob. 121 Posted October 24, 2023 Also try the super duper EXE Explorer from Mitec https://mitec.cz/exe.html you should be able to find your library and class in a DLL. Share this post Link to post
SneakyPeaky99 0 Posted October 24, 2023 I run this program on working version of this application, than I have installed all of those dll mentioned in imports section, but the problem didnt disappear. Can you tell me what am i doing wrong? Im not really an expert in this kind of stuff. Share this post Link to post
PeterBelow 238 Posted October 24, 2023 (edited) Isn't there a comment in the unit that names the type library the unit was created from? A in-process COM server is implemented in a DLL, but that DLL is not explicitely imported by the application using the COM server, so you will not find it listed in the EXE's import section. Since the error message states that the server is not found the DLL may actually not be present on your development machine. Do you have access to a PC where the program you are working on is still running? You should be able to find the DLL there. Edited October 24, 2023 by PeterBelow Share this post Link to post
SneakyPeaky99 0 Posted October 24, 2023 I managed to track down what could possibly be those missing .dlls names. Unfortunately I couldn't find them on any machine that this project was running on or was developed or on the internet... I will keep digging to find them. Thank you all for your replies, i will keep you informed with progress. Share this post Link to post
JonRobertson 72 Posted October 24, 2023 On a machine where the application is working, run regedit and look for an entry at one of these locations: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{AB885FB5-0A94-11DC-9263-0002B34C1718} HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\{AB885FB5-0A94-11DC-9263-0002B34C1718} If you find an entry at either location, look for a key named LocalServer or InProcServer32. The default value should be the full path of the file that contains the COM class. 1 Share this post Link to post
Kas Ob. 121 Posted October 24, 2023 3 hours ago, SneakyPeaky99 said: Drop the DLLs one by one in EXE Explorer, then in Resource tab check the Registry also you might find the TypeLib there, And because you have a working version use Jon method above is more concise for finding the working DLL than searching the DLLs for the needed class. Share this post Link to post
Kas Ob. 121 Posted October 24, 2023 Here is a better example than the above, you can see the implementation in full. Share this post Link to post
DelphiUdIT 176 Posted October 24, 2023 (edited) Try this: go to the "mehtcommserverLib_tlb.pas" file (which is already open in the IDE), go to the beginning of the file and in one of the lines you will see where it was derived from, i.e. the DLL to register. Example: You must find a DLL with the name very similar to that (your name of course) After found the DLL, run from command prompt (AS ADMIN): regsvr32 nameofdll.dll where nameofdll.dll is the dll that is named in the file. I hope it is useful to you. EDIT: the extension may be also OCX, EXE, ... Edited October 24, 2023 by DelphiUdIT Share this post Link to post
SneakyPeaky99 0 Posted October 26, 2023 Thank you all for your advice. I managed to find the necessary files, after proper registration, the appropriate entries appeared in the registry, and the program started working. Thank you all again for your time, you've been a big help. Share this post Link to post