Microsoft KB Archive/164742

= PRB: Error Message Cannot Load 32-bit DLL =

Article ID: 164742

Article Last Modified on 12/3/2003

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition
 * Microsoft Visual FoxPro 3.0b Standard Edition
 * Microsoft Visual FoxPro 5.0 Standard Edition
 * Microsoft Visual FoxPro 6.0 Professional Edition

-



This article was previously published under Q164742



SYMPTOMS
The following error occurs when you attempt to call a function in a 16-bit DLL that has been registered with the DECLARE-DLL command:

Cannot load 32-bit DLL 

It may also seem to happen in calling the RegFn function in FoxTools, if the incorrect syntax is used, after having registered the function with the DECLARE-DLL command.



STATUS
This behavior is by design. The DECLARE-DLL command should only be used to register 32-bit DLL functions in FoxPro. To register a function of a 16- bit DLL, use the RegFn function of the FoxTools.FLL library.



Steps to Reproduce Behavior
The following steps are for illustration purposes only -- the DLL in the example does not exist.

Type the following commands in the command window: DECLARE INTEGER TestFn IN Test16.dll INTEGER,INTEGER *** The error will occur on executing the next line of code ? TestFn(1,1) *** Removing the asterisk on the next line would resolve the error *** that occurs on the first RegFn call below. * CLEAR DLLS

SET LIBRARY TO HOME+"FoxTools.FLL" *** The error will occur on executing the next line of code *** because it is attempting to call the TestFn function registered *** above with the DECLARE-DLL command handle = RegFn(TestFn,"II","I","Test16.DLL") * The correct way to register the function is... handle = RegFn("TestFn","II","I","Test16.DLL") ReturnValue = CallFn(handle, 1, 1) && Note this works now

Keywords: kbprogramming kbprb KB164742

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.