HI,
How do I detect the DLLs required by an application?
Do you have any trick to easy identify the dll dependency of an xbase exe?
Many Thanks
How do I detect the DLLs required by an XBase and eXpress application?
Re: How do I detect the DLLs required by an XBase and eXpress application?
Hi, Pedro.
Doing this from inside the application is possible, but a little complicated. From the outside, you may try:
- The tool "dependency walker": https://www.dependencywalker.com/
- The tool "Process Explorer" from the Microsoft Sysinternals Suite: https://learn.microsoft.com/de-de/sysin ... s-explorer
- Powershell
Doing this from inside the application is possible, but a little complicated. From the outside, you may try:
- The tool "dependency walker": https://www.dependencywalker.com/
- The tool "Process Explorer" from the Microsoft Sysinternals Suite: https://learn.microsoft.com/de-de/sysin ... s-explorer
- Powershell
Best regards,
Tom
"Did I offend you?"
"No."
"Okay, give me a second chance."
Tom
"Did I offend you?"
"No."
"Okay, give me a second chance."
Re: How do I detect the DLLs required by an XBase and eXpress application?
Hi Tom.
Many Thanks for reply.
The situation is :
I Have a Program.exe develloped in xBase.
But I do not know what dlls i need to run this exe.
Obviously, if I try to run the exe I will know step by step.
What I am looking for is a way to identify which DLLS I need for this exe in advance. And provide only the strictly necessary DLLs.
regards
Many Thanks for reply.
The situation is :
I Have a Program.exe develloped in xBase.
But I do not know what dlls i need to run this exe.
Obviously, if I try to run the exe I will know step by step.
What I am looking for is a way to identify which DLLS I need for this exe in advance. And provide only the strictly necessary DLLs.
regards
Pedro Alexandre
Re: How do I detect the DLLs required by an XBase and eXpress application?
Hi, Pedro.
It should be easy.
All DLLs you find in the "Runtime"-folder of your Xbase++-distribution should be included. If you use Xb2.Net, include xb2net.dll, if you use sqlexpress, add sqlexpress.dll, if you use eXpress++, at least add dclipx.dll. Put all these and your exe in a folder of a computer with no pathes to Xbase++ or any other tools and start it from the command line. It will tell you which DLLs are missing.
It should be easy.
All DLLs you find in the "Runtime"-folder of your Xbase++-distribution should be included. If you use Xb2.Net, include xb2net.dll, if you use sqlexpress, add sqlexpress.dll, if you use eXpress++, at least add dclipx.dll. Put all these and your exe in a folder of a computer with no pathes to Xbase++ or any other tools and start it from the command line. It will tell you which DLLs are missing.
Best regards,
Tom
"Did I offend you?"
"No."
"Okay, give me a second chance."
Tom
"Did I offend you?"
"No."
"Okay, give me a second chance."
Re: How do I detect the DLLs required by an XBase and eXpress application?
I use the CHK4DLL.EXE utility: http://bb.donnay-software.com/donnay/chk4dll.exe
Example:
CHK4DLL XDOT.EXE will produce the following output :
XCHK4DLL Version 1.0 - DLL load check.
(C) Copyright Alaska Software GmbH 1997. All Rights Reserved.
Processing file xdot.exe
DCLIPX.dll -> C:\expd20\bin20\DCLIPX.dll can be loaded.
DCLIP1.dll -> C:\expd20\bin20\DCLIP1.dll can be loaded.
DCXML.dll -> C:\expd20\bin20\DCXML.dll can be loaded.
XBTBase1.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\XBTBase1.dll can be loaded.
XBTBase2.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\XBTBase2.dll can be loaded.
ASUED10.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\ASUED10.dll can be loaded.
ASCOM10.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\ASCOM10.dll can be loaded.
XPPRT1.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\XPPRT1.dll can be loaded.
xppsys.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\xppsys.dll can be loaded.
XPPDBGC.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\XPPDBGC.dll can be loaded.
Caveat: Only those DLLs that are statically referenced (via your XPJ file or a #Pragma Library() statement in your source code) will be listed.
For example, if you use DllLoad() in your application to dynamically load a DLL, it will not be listed.
Example:
CHK4DLL XDOT.EXE will produce the following output :
XCHK4DLL Version 1.0 - DLL load check.
(C) Copyright Alaska Software GmbH 1997. All Rights Reserved.
Processing file xdot.exe
DCLIPX.dll -> C:\expd20\bin20\DCLIPX.dll can be loaded.
DCLIP1.dll -> C:\expd20\bin20\DCLIP1.dll can be loaded.
DCXML.dll -> C:\expd20\bin20\DCXML.dll can be loaded.
XBTBase1.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\XBTBase1.dll can be loaded.
XBTBase2.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\XBTBase2.dll can be loaded.
ASUED10.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\ASUED10.dll can be loaded.
ASCOM10.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\ASCOM10.dll can be loaded.
XPPRT1.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\XPPRT1.dll can be loaded.
xppsys.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\xppsys.dll can be loaded.
XPPDBGC.dll -> C:\Program Files (x86)\Alaska Software\xpp20\lib\XPPDBGC.dll can be loaded.
Caveat: Only those DLLs that are statically referenced (via your XPJ file or a #Pragma Library() statement in your source code) will be listed.
For example, if you use DllLoad() in your application to dynamically load a DLL, it will not be listed.
The eXpress train is coming - and it has more cars.
Re: How do I detect the DLLs required by an XBase and eXpress application?
With release 2.00.2413 of Xbase++ (2.0), Alaska provides a tool (CLI) named "XPPDH.EXE", which will list all DLLs used by any Xbase++-binary, which can be an EXE or a DLL.
Best regards,
Tom
"Did I offend you?"
"No."
"Okay, give me a second chance."
Tom
"Did I offend you?"
"No."
"Okay, give me a second chance."