Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

How to distribute gdiplus.dll with a foxpro application?

Status
Not open for further replies.

pcwc66

IS-IT--Management
Dec 14, 2001
163
US
I want to distribute GDIPLUS.DLL with my foxpro application using InstallShield. What do I need to do?

I have donwloaded the gdiplus.dll from this link
After I unzip the downloaded file, it has 3 files: gdiplus.dll, license.txt, redist.txt. I guess I don't need to distribute the license.txt and redist.txt.


Thank you for any help.
 
Take a look at the FILES optons. I believe it is the 2nd item,, "Specifying Application Data"

You should see a directory on the bottom called [system directory]. On the top is an explorer type window. Navigate to the file and drag it to the system directory.

I think this will do it.



Jim Osieczonek
Delta Business Group, LLC
 
Pcwc66,

I think Jim's solution is correct. I had to do this some time ago. As far as I recall, I just had InstallShield copy GDIPLUS.DLL to the user's system directory, and everything was fine. I don't recall seeing the other two files you mentioned.

Mike


Mike Lewis
Edinburgh, Scotland

My Visual Foxpro web site: My Crystal Reports web site:
 
Hi Jim and Mike,

Do I need to worry about the following note in Microsoft website?

Note If you are redistributing GDI+ to a downlevel platform or a platform that does not ship with that version of GDI+ natively, install Gdiplus.dll in your application directory. This puts it in your address space, but you should use the linker's /BASE option to rebase the Gdiplus.dll to prevent address space conflict.

Thank you for your help.

 
There are 2 places DLLs are typically installed.

1. System Directory
2. Apps Directory

I prefer to install in the systems directory, but you can run into the problem, commonly referred to in the programming community (not me) as, "DLL HELL"

I think is deals with managing all these dlls, different versions, and sometimes different dlls with the same name.

I am not familiar with that particular message, but it appears to me that it is saying there could be a versioning conflict with other applications that use it.

To be safe - I suggest putting the dll in the apps startup directory.

One final note: Is you may play with this a bit, but if all the DLL needs is to be registered. You could keep it in the apps or system directory and register it manually if necessary at startup.

1. Read the registry to see if it exist. I have an FAQ that tells how to do that.

2. If it does not exist, copy it to the apps or system directory (whichever one you choose), and then register it using REGSRV32 in silent mode.

RUN /n REGSRV32 mydll.dll /s

The big difference with the 2nd solution is you have decided to handle the registration instead of Install Shield.



Jim Osieczonek
Delta Business Group, LLC
 
Hi Jim,

I just notice that gdiplus.dll is actually now a requirement to be distributed with VFP applciation since VFP8r.dll has dependency on it. According to post in UT forum, gdiplus.dll does not require registering. I also find out that VFP 8 has a vfp_gdiplus.msm.

From all the replies regarding this issue, it seems me that I just simply install gdiplus.dll and don't need to worry about that "address space conflict" issue.


Thank you for your help.
 
Hi Mike,

I have tried to install it in the system directory. It seems to work fine. I'm just worry about that "address space conflict" of this note in MS website:

Note If you are redistributing GDI+ to a downlevel platform or a platform that does not ship with that version of GDI+ natively, install Gdiplus.dll in your application directory. This puts it in your address space, but you should use the linker's /BASE option to rebase the Gdiplus.dll to prevent address space conflict.


Thank you.
 
pcwc66,

If you want to dig into this issue then here is a place to start


...personally I wouldn't worry yourself about it, the chances of an address space conflict are so slim that you will probably win 150 million dollars from a lottery first before experiencing this. Put the GDI+ in your application's directory so VFP will find it there. The elements that make up "DLL Hell" are too numerous to list here and not really VFP specific.

If however you feel up to rebasing this dll, then base it between 0x60000000 to 0x68000000 - as for why read the following:



Slighthaze = NULL
[sub]craig1442@mchsi.com[/sub][sup]
"Whom computers would destroy, they must first drive mad." - Anon​
[/sup]
 
Hi Slighthaze,

I'm not familiar with how VFP finds dll. Since gdiplus.dll does not need to be register, does VFP find the dll by going through all the search paths. So, if I put gdiplus.dll in the system directory or my application directory, I guess it won't make any difference since both directory should be in the search paths all the time. Right?

Thank you for you help.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top