How do I detect the DLLs required by an XBase and eXpress application?

Xbase++ 2.0 Build 554 or later
Post Reply
Message
Author
User avatar
PedroAlex
Posts: 237
Joined: Tue Feb 09, 2010 3:06 am

How do I detect the DLLs required by an XBase and eXpress application?

#1 Post by PedroAlex »

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
Pedro Alexandre

User avatar
Tom
Posts: 1288
Joined: Thu Jan 28, 2010 12:59 am
Location: Berlin, Germany

Re: How do I detect the DLLs required by an XBase and eXpress application?

#2 Post by Tom »

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
Best regards,
Tom

"Did I offend you?"
"No."
"Okay, give me a second chance."

User avatar
PedroAlex
Posts: 237
Joined: Tue Feb 09, 2010 3:06 am

Re: How do I detect the DLLs required by an XBase and eXpress application?

#3 Post by PedroAlex »

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
Pedro Alexandre

User avatar
Tom
Posts: 1288
Joined: Thu Jan 28, 2010 12:59 am
Location: Berlin, Germany

Re: How do I detect the DLLs required by an XBase and eXpress application?

#4 Post by Tom »

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.
Best regards,
Tom

"Did I offend you?"
"No."
"Okay, give me a second chance."

User avatar
rdonnay
Site Admin
Posts: 4854
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: How do I detect the DLLs required by an XBase and eXpress application?

#5 Post by rdonnay »

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.
The eXpress train is coming - and it has more cars.

User avatar
Tom
Posts: 1288
Joined: Thu Jan 28, 2010 12:59 am
Location: Berlin, Germany

Re: How do I detect the DLLs required by an XBase and eXpress application?

#6 Post by Tom »

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."

Post Reply