Announcement

Collapse
No announcement yet.

Error 453: Can't find DLL Entry Point

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

  • Error 453: Can't find DLL Entry Point

    Hi, can someone help:

    I get this error (kind of 'all of a sudden') which I tried to fix by registering the DLL (which gave an error; I learned that PBDLL's don't have to be registered. True / False?).
    Anyway, using the code from Dorian (way back in july) didn't help:
    FUNCTION LibMain( BYVAL hInstance AS LONG, BYVAL Reason AS LONG, BYVAL Reserved AS LONG) EXPORT AS LONG
    FUNCTION = 1
    END FUNCTION

    And the explicit mentioning of the ALIAS (in caps in both the PBDLL as well as the VB 6.0 project) was not good either.

    Here's the code:
    PBDLL Code:
    #COMPILE DLL "C:\test.dll"
    #OPTION VERSION4
    DECLARE SUB RunThrough_Order ALIAS "RUNTHROUGH_ORDER" (BYREF Session AS String)

    SUB RunThrough_Order ALIAS "RUNTHROUGH_ORDER" (BYREF Session AS String) EXPORT
    Session = "All OK"
    End Sub


    VB Code:
    Declare Sub RunThrough_Order Lib "C:\Test.DLL" Alias "RUNTHROUGH_ORDER" (ByRef Session As String)

    Sub Test1
    Session = "InputString"
    Call RunThrough_Order(Session)
    Msgbox "Session = " & Session
    End Sub


    The thing is: if I start VB, open & run my VB project, it provides the 453-error. If I really close VB and open & run the project again, it works alright!

    Any ideas what I'm doing wrong?

    Hope you can help,
    Jeroen



  • #2
    Maybe, just maybe the underscore...

    I do this each day now with VB6 and PB6, yes capitals required but no problem further.

    But, Usually i do this...

    Code:
    PB;
    Sub MySub( param As ASCIIZ ) EXPORT
    
    End Sub
    
    VB;
    Declare Sub MySub Lib "C:\MY.DLL" Alias "MYSUB" ( ByVal param As String )
    
    Command1;
    (Don't use call)
    MySub "Hello"
    ------------------

    Comment


    • #3
      Jeroen..

      PBDLL Code:
      Code:
      #COMPILE DLL "C:\test.dll"
      #OPTION VERSION4
      SUB RunThrough_Order (Session AS String) EXPORT 
          Session = "All OK"
      End Sub
      VB Code:
      Code:
      Declare Sub RunThrough_Order Lib "C:\Test.DLL" Alias "RUNTHROUGH_ORDER" (Session As String)
      
      Sub Test1
          DIM Session as STRING
          Session = "InputString"
          Call RunThrough_Order(Session)
          Msgbox "Session = " & Session
      End Sub
      It is not necessary to alias your PB sub. PB converts all sub/
      function names to uppercase without alias. Then use the alias in
      VB to accommodate that as I have above.


      ------------------
      Jim..
      [email protected]
      Jim..

      Comment


      • #4
        NOTE THAT;

        That each used (API) call in another DLL MUST exist!
        If you've a part wich calls an invalid API for example, PB won't execute..



        ------------------

        Comment


        • #5
          Jeroen --

          > The thing is: if I start VB, open & run my VB project,
          > it provides the 453-error. If I really close VB and open
          > & run the project again, it works alright!

          Is it possible that you've got more than one version of your DLL on your hard drive, in different directories?

          -- Eric


          ------------------
          Perfect Sync: Perfect Sync Development Tools
          Email: mailto:[email protected][email protected]</A>

          "Not my circus, not my monkeys."

          Comment


          • #6
            Thanks everybody.
            Yes, the Aliases are necessary. Multiple versions are not a problem (even when you have them, as long as you specify the path).

            No idea what the real problem was: tests on a clean system did not show any errors what so ever, so.. (hope it doesn't happen again).
            JB


            ------------------

            Comment

            Working...
            X