Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

private dll install...........

Posted on 1998-07-27
17
Medium Priority
?
305 Views
Last Modified: 2013-11-08
the fact....
I have a project with a call to a private dll(in FORTRAN), and i have create an setup for my app(with the setup wizard). Ok, it´s work in the developper computer(where i have developped the app and the dll), but when i teste my installation in anover machine it doesn't work.....when i execute the app it tell´s me that it  can´t fount the external dll(i have tested to copy the dll to the system folder but it doesn't work anyway....)
what´s the problem? do i have to regiter the dl in each computer....? help´s me please........

Thanx in advance, :c)
Mário Guedes
0
Comment
Question by:mguedes
  • 8
  • 4
  • 2
  • +3
17 Comments
 
LVL 6

Expert Comment

by:clifABB
ID: 1466810
Make sure the dll's path isn't hard coded in the VB app:
  Wrong:
    Declare Function Foo Lib "c:\WinNY\System32\Mydll.dll" (ByVal hdc As Long) As Long
  Right:
    Declare Function Foo Lib "Mydll.dll" (ByVal hdc As Long) As Long

Also, you seem to have done so already, make sure your dll is in the Windows\System directory.

I submit this as a comment.  If it solves your problem, let me know and I'll resubmit it as an answer.
0
 

Expert Comment

by:abrooke
ID: 1466811
I'm going out on a limb, but I have experienced the same problem with one of my Visual C++ dlls, most likely you have built the dll as a debug version and do not have the necessary extra files on your other computer to run it in debug version. ReBuild a release version, this should fix your problems.
 
                                          Lonnie Brooke

0
 

Author Comment

by:mguedes
ID: 1466812
I have tested both solution, but it doesn't work anyway.......
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 

Author Comment

by:mguedes
ID: 1466813
I have tested both solution, but it doesn't work anyway.......
0
 

Expert Comment

by:74wolfgang
ID: 1466814
what´s the original error message ? Have you registered the dll ?
0
 

Author Comment

by:mguedes
ID: 1466815
the original message was "Error:xxx foo.dll file not found". And no i don´t no if the dll was registered in the new machine....i just make the VB setup wizard...
0
 
LVL 1

Expert Comment

by:ChrisH
ID: 1466816
You must register the dll file first.  To do that in the setup wizard, you must add the file at the end and make sure that it registers after any dependent files register.  IE shadow.dll is dependent on sun.dll so sun.dll must install and register in the setup list before the shadow.dll.  You might have to open up the setup list and do this manually because the setup wizard is crued as opposed to using install shield or another program of such sort.
0
 

Author Comment

by:mguedes
ID: 1466817
The setup Wizard detect the dependency and include my dll....and it is at the end of the list. How can i have sure that it registers my DLL? How can i regester my DLL manualy?
0
 
LVL 6

Expert Comment

by:clifABB
ID: 1466818
You can register your dll manually by opening a dos box, change directories to your system directory and typing the following:
  regsvr32 foo.dll

most dll's are self registering, though.
0
 

Author Comment

by:mguedes
ID: 1466819
do you no if a dll make with the Visual Fortran(in DevStudio) was self registering ?
I will test your tip and send you the results....
0
 
LVL 1

Expert Comment

by:ChrisH
ID: 1466820
It doesn't matter what dependencies the wizard recognizes in the dependency section.  The truth of the matter is that it still doesn't mean that it will include the files or register them.  You need to add them at the very end where it shows you a list of files and you have a button that you can click to add more files.  If the files don't register when installing, you can register them by using regsvr32.  Go to the dos window, the directory the file is in, and then type regsvr32 the.dll.  If that doesn't work, your dll is being installed in the wrong place, is missing a dependent file (once again don't trust the setup wizard to include dependencies even if it says it recognizes them), or your program is not making the correct reference to the dll.
0
 

Author Comment

by:mguedes
ID: 1466821
But it copy the dll to the install folder in the setup wizard, and to the system(app path) after i run the setup.exe..........
0
 
LVL 1

Expert Comment

by:ChrisH
ID: 1466822
Unless you add the file at the right time, it doesn't matter where the file is put.  First try just self-registering the dll with regsvr32.  If the program works after that, then your problem is in the setup wizard registering the program.  If not, then it's a problem in the dll or the way your calling it in your project.  Such problems can arise because running an exe and just running your project can sometimes produce two different results due to the fact that the VB compiler and the debugger run things differently IE the parrellel processing.  Anyways, if the file runs after self-registering it, you need to add the dll AT THE END of the setup wizard.. it's the last screen before the program starts building.  Anywhere else, and the dll will not self-register.  The setup wizard is very crued and stupid to say the least.  It's not a good tool for creating installs to distribute to other users.  You really need to use a 3rd party installation program such as install shield.
0
 
LVL 1

Expert Comment

by:ChrisH
ID: 1466823
Did any of this work for you?
0
 

Author Comment

by:mguedes
ID: 1466824
thank´s ChrisH, i will try that....tomorow(because in my country , it's 10PM), and i comment to you......tomorow :c)
0
 
LVL 4

Accepted Solution

by:
chabaud earned 40 total points
ID: 1466825
Are you sure your Fortran DLL does not depend itself of other DLL. If it is a 32 bits DLL, your can check its dependencies using DEPENDS.EXE (a tool I have found into the win 98 CD).

If it is a 16 bits DLL, u can use EXESCAN.EXE (a shareware).
0
 

Author Comment

by:mguedes
ID: 1466826
Thank´s for your help............i´m remenber that i have a prog. installed that add a tab in the dlls properties with the dependence of the dll analized.!!! ;c)
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Windows Script Host (WSH) has been part of Windows since Windows NT4. Windows Script Host provides architecture for building dynamic scripts that consist of a core object model, scripting hosts, and scripting engines. The key components of Window…
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…
Suggested Courses

783 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question