Thread Rating:
  • 2 Vote(s) - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
suggestion: make w32pthreads.dll version specific
#1
w32pthreads.dll makes it impossible to keep multiple different versions in the same directory, with the same files and configurations and just differing EXEs...
It would be great if it was somehow possible to keep several of those together.

Maybe have the exe check a subdir with a name identical to the exe for that dll?

ex:
C:\PCSX2\pcsx2.exe will look for w32pthreads.dll in C:\PCSX2\pcsx2\w32pthreads.dll

ex2:
C:\PCSX2\pcsx2-beta bXXXX.exe will look for w32pthreads.dll in C:\PCSX2\pcsx2-beta bXXXX\w32pthreads.dll
I do not have a superman complex; for I am God, not superman!

Rig: Q9400, 4GB DDR2, eVGA GTX260 SC, gigabyte EP35-DS3R. X25-M 80GB G2.
Reply

Sponsored links

#2
(note: moved to developer discussion forum)

w32pthreads.dll has not gone through any change that would require versioning to this point. I'm certain of it. Any version of w32pthreads.dll will work with any version of pcsx2 from the trunk svn revisions. The wxgui branch however has changed w32pthreads, and although I haven't done it yet since it's been a private development branch, I planned to version it starting with the merge of the wxgui branch into trunk. And for that matter, the wx and non-wx versions of PCSX2 are different enough that even with correctly versioned w32pthreads.dll, running the EXEs from the same folder interchangably would probably cause all kinds of odd problems.

Also! It's possible that cross-compiling builds of PCSX2 between vs2008 and vs2010 could cause dll compat issues. Technically it shouldn't, but vs2010 is in early beta so it's not really a good idea.


My planned scheme for versioning is like this:

w32pthreads.v2.dll
w32pthreads.v3.dll

I can't easily name the DLL as per SVN revision because it requires some rather "clever" application of pre- and post-build scripts, and it would also require I manually specify the DLL manifest instead of relying on the automatic manifest bindings created by the VC solution (which, honestly, I'm not really sure how it's done -- I tried to do manual DLL versioning crap for PCSX2 some months ago to import the Common Controls v6 library and still failed after some 3-5 hrs of reading MSDN articles, and subsequently pasting crap into project dialogs, source files, and manifest files). So instead I'm going to manually upgrade the name of the project (and it's output file) whenever I make changes to the DLL, which at this rate is likely to never happen again after wxgui becomes trunk. Wink
Jake Stine (Air) - Programmer - PCSX2 Dev Team
Reply
#3
Thats pretty awesome. Every time I come up with a good idea it seems you already figured it out too Smile
Your versioning approach sounds like it will work pretty well; good to know that any version of exe should work with any version of dll...

One correction though, what I suggested was not renaming of the DLL as per SVN revision... but to set the exe to automatically look for it in a subdirectory with a name matching its own... this means that renaming the exe will CHANGE the path in which it looks for the DLL without altering its code or the name of the dll.

I am not sure if this is more doable than what you tried to before. But if it was an issue before it be an issue again in the future... It would be cool if this idea solves a problem you encountered before.
I do not have a superman complex; for I am God, not superman!

Rig: Q9400, 4GB DDR2, eVGA GTX260 SC, gigabyte EP35-DS3R. X25-M 80GB G2.
Reply
#4
Nah, windows doesn't have any kind of 'search path' options for DLL loading. It has the default locations it searches (current working dir, dir where the executable is located, /windows/system32, and then the assembly registry), and that's about all you get for a say in the matter. Registering a DLL in the assembly registry has its own ugly can of worms, of course, so we'll happily stay far away from that. Wink

So to specify a subfolder would basically require specifying a special filename that includes the subfolder. ie, same thing as changing the filename itself.

The other nice thing about the new wx branch is that you'll be able to keep programs and data files separated. So you won't need to stack 600 copies of PCSX2 on top of each other in the same folder anymore. It'll be possible to keep a few separate installs of PCSX2 binaries that just reference the same shared locations of plugins, savegames, etc.
Jake Stine (Air) - Programmer - PCSX2 Dev Team
Reply
#5
I see.
Also, pretty neat about the wx branch seperation of data files and programs.
Thank you for clarifying this for me.
I do not have a superman complex; for I am God, not superman!

Rig: Q9400, 4GB DDR2, eVGA GTX260 SC, gigabyte EP35-DS3R. X25-M 80GB G2.
Reply




Users browsing this thread: 1 Guest(s)