Announcement

Collapse
No announcement yet.

Cannot find file in NT4

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Cannot find file in NT4

    Released new versions recently. Customers using NT4 get an error
    message similar to "cannot find Medlin60.dll". The dll file is
    in the app folder (as it should be). Works OK on
    Win 95/98/ME/2000. Only problem is on NT4. Using Option
    Version4 in the DLL. Medlin60.dll was created with PB.

    The dll file is similar to our last year's version which did (and
    does) work on NT4. I am going through the process of checking
    each new function/sub/declare to see if one would have a problem
    in NT4.

    Any ideas?

    Dennis Pearson
    Medlin Accounting Shareware
    medlin.com

    ------------------
    Dennis
    mailto:[email protected][email protected]</A>

  • #2
    Three things:
    A) Check the ENTIRE machine for previous versions
    B) Check the SHORTCUT for "Working directory", because if it's different you will get that error.
    C) Toss it (The DLL) in C:\Winnt\System32 - if problem does not go away it may be a code issue not an OS issue...


    Scott


    ------------------
    Scott
    mailto:[email protected][email protected]</A>

    [This message has been edited by Scott Turchin (edited September 27, 2000).]
    Scott Turchin
    MCSE, MCP+I
    http://www.tngbbs.com
    ----------------------
    True Karate-do is this: that in daily life, one's mind and body be trained and developed in a spirit of humility; and that in critical times, one be devoted utterly to the cause of justice. -Gichin Funakoshi

    Comment


    • #3
      As it works on 95-type os (95/98/ME) and not on NT4 indicate that your
      declaration is the point of failure.
      NT4 need the complete lib-name Lib "MEDLIN60.DLL" but
      95-type os is satisfied with Lib "MEDLIN60"



      ------------------
      Fred
      mailto:[email protected][email protected]</A>
      http://www.oxenby.se

      Fred
      mailto:[email protected][email protected]</A>
      http://www.oxenby.se

      Comment


      • #4
        Scott - Fred,

        Thanks, but so far, no solution. I have the full filename in all references. The customer tried A, B, & C with no luck. Also has checked the registry for any references.

        The part that bothers me is that it works on Win 2000.

        So far, I have found no API calls that are not supposed to work with NT.

        I guess I'll have to reinstall NT4 myself :-(

        ------------------
        Dennis
        mailto:[email protected][email protected]</A>

        Comment


        • #5
          The problem may be that MEDLIN60.DLL relies on DLLs that are not present under NT4. Windows will generate a misleading error in that case. This may also be a problem if you make a call to a function that isn't in the available version of a DLL, if the function is a DECLAREd function rather than checked for and loaded via LoadLibrary.

          So, you may want to start by investigating which DLLs are used by MEDLIN60.DLL. There are utilities which will dump out such information for you (can't think of a name offhand).


          ------------------
          Tom Hanlin
          PowerBASIC Staff

          Comment


          • #6
            Thanks Tom.

            MS has a free program called dependency walker.

            The customer does not have rasapi32.dll on their computer. The two functions I use from that file are:
            RasEnumConnections
            RasEnumEntries

            At "least" I have something to try to fix...

            ------------------
            Dennis
            mailto:[email protected][email protected]</A>

            Comment


            • #7
              A cautious "viola".

              By renaming the rasapi32.dll file I can repeat the error!!!

              Here is what happens:
              In VB, I call this sub to check that the user has the correct version of our dll
              Code:
              Sub VBTestDll()
              Dim I%, M$
              On Error Resume Next
              I = TestDll(6) 'parameter is the min DLL INTEGER version number
              If Err Then
                M = Error
              ElseIf I = 0 Then
                M = "Wrong version of Medlin's DLL"
              End If
              If Len(M) Then
                'HERE IS THE MESSAGE THE USER IS SEEING
                MsgBox M & vbLf & vbLf & "To correct this error, reinstall Medlin", 16 + 65536
                End
              End If
              On Error GoTo 0
              End Sub
              The DLL never even makes it to LibMain

              rasapi32.dll is the only "optional" MS dll we depend on. I'll look at Tom's suggestion to use loadlibrary for these calls.


              ------------------
              Dennis
              mailto:[email protected][email protected]</A>


              [This message has been edited by Dennis Pearson (edited September 28, 2000).]

              Comment

              Working...
              X