Author Topic: SlickEdit integration with Perforce 2008.2  (Read 5924 times)

KP

  • Junior Community Member
  • Posts: 2
  • Hero Points: 1
SlickEdit integration with Perforce 2008.2
« on: January 08, 2009, 03:33:04 PM »
It appears that SlickEdit 13.0.2.0 does not work with Perforce 2008.2. Perforce support claims that 2008.1 will work, so I think they broke backwards compatibility of p4scc.dll between 2008.1 and 2008.2. Any word on when SlickEdit will have an update to support Perforce 2008.2?

chrisant

  • Senior Community Member
  • Posts: 1410
  • Hero Points: 131
Re: SlickEdit integration with Perforce 2008.2
« Reply #1 on: January 08, 2009, 08:34:31 PM »
What specifically "doesn't work"?  Knowing that might help someone help you to troubleshoot (maybe it's just a config thing) or might help a SE (or even Perforce) team member investigate.

KP

  • Junior Community Member
  • Posts: 2
  • Hero Points: 1
Re: SlickEdit integration with Perforce 2008.2
« Reply #2 on: January 08, 2009, 09:52:53 PM »
I've been in contact with both Perforce and SlickEdit support. This post wasn't really meant as a bug report since I've already done that through the official channels. My conclusion from those efforts is that supposedly, Perforce 2008.1 and earlier should work with SlickEdit.

Here's the issue:
Using SlickEdit 13.0.1.0 or 13.0.2.0
Perforce 2007.2 works fine. If I upgrade to 2007.3, 2008.1 or 2008.2, I get the errors described below:

When starting SlickEdit, I'll see these error messages:
"Could not load dll C:\Program Files\Perforce\p4scc.dll"
"Could not initialize SCC:Perforce SCM"
"status=4"

Navigate to Tools > Version Control > Setup. Select Perforce SCM. Press "Initialize Provider". I'll get these error messages:
"The procedure entry point ?toFillPolygon@QPainterPath@@QBE?AVQPolygonF@@ABVQTransform@@@Z could not be located in the dynamic link library QtGui4.dll"
"Could not load dll C:\Program Files\Perforce\p4scc.dll"
"Could not initialize SCC:Perforce SCM"

To me, it appears that Perforce broke backwards compatibility within p4scc.dll with its newer versions and SlickEdit is still interfacing to the older version. I've uninstalled and reinstalled way too many combinations of versions of SlickEdit and Perforce in the past couple of days...

Perforce support is telling me to downgrade to 2007.3.
SlickEdit support claims that it should work with Perforce 2008.1.

As of right now, I've reverted to my last known good configuration: SlickEdit 13.0.1.0 with Perforce 2007.2.

Let me know if you have any ideas. Thanks

tlholaday

  • Community Member
  • Posts: 15
  • Hero Points: 2
  • Text text wonderful text
Re: SlickEdit integration with Perforce 2008.2
« Reply #3 on: January 13, 2009, 01:34:32 AM »
No joy here, either.  I am running Vista Business Edition, Service Pack 1.  2008.2 of Perforce, 13.0.2.0 of SlickEdit.  I do not see any error messages when starting up; is there a log somewhere?

The symptom:

Open project, select Perforce from the list of SCC providers, click Initialize Provider.  Finally click Open Project, and nothing happens.

Edit:
I used variations on this string to setup a Perforce command line configuration:

p4 -u tlholaday -c venus -p %(P4PORT) add %f

I defined P4PORT as an environment variable in the workspace because I am using more than one Perforce server.  I could define P4USER and P4CLIENT in the workspace, too, but since I'm always me and I only use one client per machine (in this project), I went with hard-coding.
« Last Edit: January 13, 2009, 01:49:56 AM by tlholaday »

chrisant

  • Senior Community Member
  • Posts: 1410
  • Hero Points: 131
Re: SlickEdit integration with Perforce 2008.2
« Reply #4 on: January 13, 2009, 03:45:07 AM »
The error seems to indicate that P4SCC expects to find a particular version of the Qt4 libraries installed, but you have a different version of the Qt4 libraries installed.

Where is the QtGui4.dll file located on your computer?
Are there multiple copies?
Does it install into the c:\Program Files\Perforce directory, or is it a separate install?
If it's a separate install, then perhaps you have two programs that both use Qt4, but they expect to use different versions of Qt4, and perhaps one of the programs upgraded the Qt4 install, thus breaking the other program.

On my computer, I see that both LightScribe and PowerDVD use the Qt4 libraries, and both of those products install the Qt4 libraries into their own directories (i.e. not a separate install, and the result is multiple copies of the Qt4 libraries, which is the simplest way to avoid the install-stomping problem I described above).

Hm...my spidey sense is tingling.  I wonder if two different things in the SlickEdit process are trying to load two different versions of the Qt4 libraries.  That's not possible -- only one copy of a same-named DLL can get loaded.  In other words, it's possible to load "Foo4.1.dll" and "Foo4.2.dll", but it is not possible to load two different DLLs that are both named "Foo4.dll" even if they come from two different directories.

Maybe P4SCC is trying to use one version of the Qt4 libraries, but you have some other component that's gotten loaded into the SlickEdit process first but has loaded a different version of the Qt4 libraries.

1.  Try looking for all copies of QtGui4.dll on your machine, and see how many of them correspond to components that might be getting loaded into Slickedit.
2.  Start SlickEdit without loading P4SCC and use a utility such as Process Explorer (www.sysinternals.com) to see what DLLs are loaded, and see if something had already loaded QtGui4.dll into SlickEdit's process.