Web Connection
Cannot load 32-bit DLL wwipstuff.dll
Gravatar is a globally recognized avatar based on your email address. Cannot load 32-bit DLL wwipstuff.dll
  Harvey Mushman
  All
  Dec 27, 2016 @ 05:36am

Attempting to set up application as COM server. The DO Bld_< myApp > goes fine. Then when I try to test...

oServer = createObject('myApp.myAppServer')

as the server fires up, I get the error message popup "Cannot load 32-bit DLL wwipstuff.dll". And since I'm not using wwIPStuff anywhere in my code, I can only assume it has something to do with Web Connect.

I have switched my usage of wwIPStuff to directly Set Procedure To wwSMTP.

I have been able to track it down to a call to wwDotNetBridge. In myAppMain, I found some code with a comment that reminds me about adding wwDotNetBridge so I would able to timestamp file uploads. The code is as follows:

DO wwDotNetBridge
GetwwDotnetBridge("V4")

What I have discovered, if I comment out the second line above * GetwwDotnetBridge("V4"), the error goes away. So I peeked into wwDotNetBridge and here is what I found, Is_Westwind is set to true which inturn #Define specifies wwIPStuff.

What is the solution here... wwIPStuff has been deperciated!

Gravatar is a globally recognized avatar based on your email address. re: Cannot load 32-bit DLL wwipstuff.dll
  Rick Strahl
  Harvey Mushman
  Dec 27, 2016 @ 08:14pm

Not sure what you're asking. You need wwipstuff.dll - the settings are correct based on what you describe.

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Cannot load 32-bit DLL wwipstuff.dll
  Harvey Mushman
  Rick Strahl
  Dec 28, 2016 @ 08:05am

Let me try again... I open myProject and try to re-Build (win32...COM)exe.

Mind you I have tried adding "c:\wconnect\classes\wwipstuff_deprecated.vcx" into the PROJECT CLASSES Project Manager tab as well as pointing to the VCX in myAppMain by issuing the following:

SET CLASSLIB TO 'wwIPStuff' IN  'c:\wconnect\classes\wwipstuff_deprecated.vcx' ADDITIVE 

also tried...

SET CLASSLIB TO 'c:\wconnect\classes\wwipstuff_deprecated.vcx' ADDITIVE 

...but in both cases, I get the same error message when I re-Build:

Visual Class Library c:\wconnect\classes\wwipstuff_deprecated.vcx has the following errors:
    Visual Class Library WWIPSTUFF - Undefined

Beleaving you my setting are correct based on what I described, I tried renaming wwipstuff_deprecated.vcx to wwipstuff.vcx. Bingo! That did the trick. So further digging I discovered a possible more correct answer...

SET CLASSLIB TO 'wwIPStuff' IN 'c:\wconnect\classes\wwipstuff_deprecated.vcx' ALIAS wwIPStuff ADDITIVE 

But mind you this answer was far from obvious! Besides having to point to the className 'wwIPStuff', the ALIAS attribute also had to be defined. This was a first for me and I discovered the intelisense which describes SET CLASSLIB TO includes the keyword ALIAS as the last parameter. But in this sequence with ADDITIVE followed by ALIAS, VFP throws an error. After reversing the order of these two keywords, I was able to reBuild the project without errors.

But the problem is still unsolved. With the ALIAS defined, when I fire up myServer as defined above... (oServer = CreateObject), I get a new error message, "ALIAS already exists".

Going back to Step one, I renamed the wwipstuff_deprecated.vcx to wwIPStuff.vcx, reBuilt the project, no errors but when I try to fire up the server, I get the following error message.

What could I still be doing wrong or better yet, what is the correct answer?

SET CLASSLIB TO 'c:\wconnect\classes\wwipstuff.vcx' ADDITIVE
DO wwDotnetBridge
GetwwDotnetBridge("V4")

Finely, innorging the error "Cannot load 32-bit DLL wwipstuff.dll" that only shows up after issuing oServer=CreateObject('myApp.myAppServer'), I tried to launch my project from the EXE. It seems to be running correctly. So now what, look the other way and assume the error is an error or provide you more information that might help track down the underlying message?

Gravatar is a globally recognized avatar based on your email address. re: Cannot load 32-bit DLL wwipstuff.dll
  Rick Strahl
  Harvey Mushman
  Dec 28, 2016 @ 12:14pm

Still don't understand what you're saying.

wwipstuff.vcx isn't used for anything. wwipstuff.dll is used for lots of stuff. Make sure wwIPstuff.dll is available and that it and any other DLLs in the folder are unblocked.

The problem you likely have is that files are not being found when you run your COM server because the Fox environment isn't set the same. In your environment it probably finds the DLLs because they're in your path. In your EXE those dependencies have to be in the same folder. You need to copy wwipstuff.dll (and wwdotnetbridge, newtonsoft.json etc.) into your Deploy folder when you run the EXE - either file or COM.

If you're using a new project generated by the Wizard, it generates a build.bat that picks up the most common things and creates an actual deployable distribution folder for you.

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Cannot load 32-bit DLL wwipstuff.dll
  Harvey Mushman
  Rick Strahl
  Dec 28, 2016 @ 02:37pm

Your last reply has me wondering exactly what version of WC you are referring to... When I switched to REST server a lettle over a year ago, I used the new project wizzard to create my starting point. Then I moved everyting into the process class.

But I don't have a Build.BAT file in any folder under my project or under the c:\WCONNECT folder.

ANd if I'm understanding you correctly, all the DLL's need to be in my project\deploy\ folder. If this is correct, I will need to move them there. (...after lunch, the Zak is hungry.)

Gravatar is a globally recognized avatar based on your email address. re: Cannot load 32-bit DLL wwipstuff.dll
  Harvey Mushman
  Rick Strahl
  Dec 28, 2016 @ 04:36pm

All right... first your directions fixed the error messages in test mode oServer=CreateObject() as well as clicking on EXE.

I manually copied the following ten dll out of the WConnect folder into myApp/deploy/ folder:

  • CommonMark.dll
  • Dunzip32.dll
  • Dzip32.dll
  • hndlib.dll
  • Newtonsoft.Json.dll
  • wwdotnetbridge.dll
  • wwImaging.dll
  • wwipstuff.dll
  • zlib.dll
  • zlib1.dll

Still wonder about XFRX but it is specified in the path and I tested printing and it seemed to work (guess it does not need to move).

And if you have any comments on the above list of files, PLEASE feel free to comment!

One small step, now on to testing in COM on my server before having the conversation about moving to Clowd.

Thanks for your replies...! And happy New Year if we don't connect before.

Gravatar is a globally recognized avatar based on your email address. re: Cannot load 32-bit DLL wwipstuff.dll
  Rick Strahl
  Harvey Mushman
  Dec 28, 2016 @ 04:44pm

When you run an EXE or a COM server you should assume you run the same way as you do in production which means you have to have all of your dependencies available in the current path or FoxPro path.

build.bat is new. It was added in 6.05 I think and it's created with a new project. It's just a nice helper that builds a distribution folder for you and copies the EXE, ini,fpw and Web Connection DLLs into a build folder and zips everything up. You can then take that Zip file and upload it to server:

echo off

REM Your Web Connection Install Path
set src="C:\WEBCONNECTION\FOX"

REM The Project Path
set tgt="c:\WebConnectionProjects\test"
set appname="Test"

REM force to current path even when running as Admin
md %tgt%\build
cd %tgt%\build
del *.* /q

copy %src%\*.dll

copy %tgt%\deploy\%appname%.exe
copy %tgt%\deploy\%appname%.ini
copy %tgt%\deploy\config.fpw

REM add 7zip to your path or in this folder for this to work
7z a %appname%_Packaged.zip *.*

pause

The script is meant to be customized as you add more stuff in your application but this typically gets all the important things that your app needs to run into one place.

And yes - you'll also need to distribute XFRX somehow for it to work on the server.

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Cannot load 32-bit DLL wwipstuff.dll
  Harvey Mushman
  Rick Strahl
  Dec 28, 2016 @ 05:57pm

Thanks for explaining. When I get daring enough, I will recreate my app from the newer version of WC. I think mine was built from 6.0. But for now all is good. thanks again!

Gravatar is a globally recognized avatar based on your email address. re: Cannot load 32-bit DLL wwipstuff.dll
  Rick Strahl
  Harvey Mushman
  Dec 29, 2016 @ 12:25pm

There are really no big changes since 6.0 - it's all just around the tooling for configuration and building the application. The idea with 6.0 was to automate some of the tedium away and make it easier to get an app distributed. Some of those tools help.

+++ Rick ---

© 1996-2024