FF3 DLL Location

Started by Richard Marchessault, August 09, 2010, 02:30:25 PM

Previous topic - Next topic

Richard Marchessault

In which folder should the DLL's used by a project be located? In the Release folder?
Thanks,
Dick

Paul Squires

Yes - the Release folder would be the best place because that is normally where your EXE is created. The EXE searches it's folder first for its DLL's and then the system folders and PATH.
Paul Squires
PlanetSquires Software

Richard Marchessault

The reason I had asked about the DLL location is that I am trying to put my project on a flash drive so I can work on it when I am away from home.

Everything works fine with FF3 on my Win 7 computer at home. On that machine the project is stored in a subfolder under MyDocuments. The DLL I was asking about is in the "Release" folder for the project.

I have PB and FF3 on the flash drive. Both are the latest issues. In this case the project is in the Projects folder for FF3. The DLL is also in the "Release" folder for the project. When this project is compiled and run from the flash drive, code that calls the DLL does not find it. This is only for this one specific DLL. I am also using RMChart and MLG. The DLL's for these are found just fine. Very strange. The include file for the DLL in question does not refer to any specific file location. Not sure what is going on here.

I've also experienced cases where the program will compile. All seems well but when I run the executable it is one from a previous compile. Also very strange. The "away" computer I am working with has Win XP.

Has anyone had success running setting up and using a flash drive with the FF3 and the project both on the flash drive? Any suggestions? Is it possible to use relative file locations for the FF3 environment and the program, since the flash drive may be given different drive letters when plugged into different systems?
Thanks,
Dick

Paul Squires

#3
Is that "other" DLL and activex com based DLL that needs to be registered on the target system before it will work?

I run FF3 and PB from a portable hard drive that I plug into different computers. Granted, on the computers that I use the drive letter assigned is "D" so i don't have to worry about having to screw around with always having to reset the compiler paths, etc, when switching computers.
Paul Squires
PlanetSquires Software

Jean-pierre Leroy

#4
QuoteI run FF3 and PB from a portable hard drive that I plug into different computers. Granted, on the computers that I use the drive letter assigned is "D" so i don't have to worry about having to screw around with always having to reset the compiler paths, etc, when switching computers.

Since 2007 I'm using both FF and PB on an USB Key; unfortunately depending on the computer I'm using the drive letter assigned to my USB key is not always the same; sometime the drive is E: sometime the drive is F: or another letter.

At first each time I moved from a computer to another I was obliged to update :


  • FF by setting the right locations (changing the drive letter) in the "Environment Options" screen.
  • PowerBASIC by setting the right location (changing the drive letter) in "Options" screen.

It was a bit time consuming and boring; so I identified exactly which sections and key values inside each INI files were modified when updating directly the locations in FF and PB; here are what I found.

For PowerBASIC: Full relative path to the INI file, Section, Key

"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Compiler"      ,"Include0"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Compiler"      ,"RcInclude0"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"FilePath"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"File0"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"File1"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"File2"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"File3"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"File4"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"File5"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"File6"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"File7"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"File8"
"\Program Files\PBWin90\Bin\PBWin.ini"              ,"Editor"        ,"File9"
"\Program Files\PBWin90\Bin\PBForms.ini"            ,"MRU Files"     ,"a"
"\Program Files\PBWin90\Bin\PBForms.ini"            ,"MRU Files"     ,"b"
"\Program Files\PBWin90\Bin\PBForms.ini"            ,"MRU Files"     ,"c"
"\Program Files\PBWin90\Bin\PBForms.ini"            ,"MRU Files"     ,"d"
"\Program Files\PBWin90\Bin\PBForms.ini"            ,"MRU Files"     ,"e"
"\Program Files\PBWin90\Bin\PBForms.ini"            ,"MRU Files"     ,"f"
"\Program Files\PBWin90\Bin\PBForms.ini"            ,"MRU Files"     ,"g"
"\Program Files\PBWin90\Bin\PBForms.ini"            ,"MRU Files"     ,"h"
"\Program Files\PBWin90\Bin\PBForms.ini"            ,"MRU Files"     ,"i"


For FireFly3: Full relative path to the INI file, Section, Key

"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","Compiler"      ,"PB9COMPILER"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","Compiler"      ,"PB9INCLUDE"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","Compiler"      ,"PB9INCLUDEJOSE"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","Compiler"      ,"PB9RES"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","Compiler"      ,"RC9COMPILER"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","Compiler"      ,"RC9INCLUDE"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","Compiler"      ,"WIN32HELPPATH"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","Compiler"      ,"TYPELIBPATH"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath1"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath2"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath3"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath4"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath5"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath6"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath7"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath8"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath9"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath10"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath11"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath12"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath13"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath14"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath15"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath16"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath17"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath18"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath19"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath20"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath21"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath22"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath23"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath24"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","RecentProjects","RecentPath25"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","Environment"   ,"DefaultProjectPath"
"\Program Files\FireFly3 Visual Designer\Settings\Firefly.ini","Environment"   ,"LastProjectLoaded"


For FireFly2: Full relative path to the INI file, Section, Key

"\Program Files\FireFly2 Visual Designer\Firefly.ini","Compiler"      , "PB9COMPILER"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","Compiler"      , "PB9INCLUDE"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","Compiler"      , "PB9RES"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","Compiler"      , "RC9COMPILER"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","Compiler"      , "RC9INCLUDE"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath1"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath2"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath3"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath4"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath5"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath6"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath7"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath8"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath9"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath10"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath11"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath12"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath13"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath14"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath15"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath16"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath17"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath18"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath19"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath20"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath21"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath22"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath23"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath24"
"\Program Files\FireFly2 Visual Designer\Firefly.ini","RecentProjects","RecentPath25"


I put all these data in a text file called SwitchIniFile.txt; then I wrote a FF project called SwithIniFile to read this file and update the keys in each section of the INI file if necessary i.e. only when the current drive letter is not the drive letter found in the key value; I'm am now happy to share with you this FireFly project; you can use it to update INI files for PB, FF but also any other applications; you're free to update the text file SwitchIniFile.txt with your own data.

PS: You just have to run SwithIniFile once, before running FF, when you move your USB KEY or Portable drive from one computer to another.

Notes:
   1. This project could be compiled with PowerBASIC Include files or Jose ROCA Includes files.
   2. The module Module1.inc contains some specific functions that are necessary to compile this project; usually these functions are part of my own Functions Library; to avoid any conflict I use a prefix JPL_ for these functions in this project.

Your feedback is welcome
Jean-Pierre



Paul Squires

Thanks for sharing Jean-Pierre !!!
Paul Squires
PlanetSquires Software

Sean Roe

Is there any way to make FF3 more portable? Right now it does use the registry for certain values that it needs. Is there a setting to just use a local ini file or some other file for these entries in the registry?

Thanks

Paul Squires

FF3 uses the Registry to store certain copy protection/trial usage/registered owner information. There is no easy way to automate that process via an ini file. It is not as simple as storing that REGKEY info in an ini. There is a lot of other stuff that goes on. ;)

You could register FF3 on multiple machines as long as it is only being used by you.
Paul Squires
PlanetSquires Software

Sean Roe

Thanks Paul for the information.

Paul Squires

Hi Jean-Pierre, I had a need to use your SwitchIni tool today. Thanks for writing it. It has proven to be very valuable and such a time saver!
Paul Squires
PlanetSquires Software

Jean-pierre Leroy

Hi Paul, I'm happy to know that this small piece of software has been useful at least for someone  ;)