Could not load...

  1. 7 months ago

    Sean A

    24 May 2019 US.WI.North

    Im trying to load a .dll on windows to use in an application im trying on xojo. If the error is:
    Could not load InitTryThis from Plugin.dll.

    Does it mean that it was able to find the library but the function couldnt be loaded but the library was found? I have placed the .dll next to the xojo workspace and tried hard pathing it to a c:\ location but neither lets me access the .dll. Now, I suspect its only exprting c++ but I am wondering if theres a way to tell where one should place the .dll during a debug "run" and Im assuming it need to be at the root application level for a build unless otherwise specified in the load path

    kr,
    -sean

    It might be a 64-bit DLL and you're building a 32-bit app (or vice versa).

  2. Christian S

    24 May 2019 Pre-Release Testers, Xojo Pro, XDC Speakers, Third Party Store Germany

    There may be dependencies.
    Did you check with Dependency Walker?

  3. Sean A

    24 May 2019 US.WI.North

    Hi Christian, thank you - I have not, but this runs on other apps built in VS with a c++ sample. So I think its that its not exprting C. SO I am really most interested in where the .dll should be placed for; running in debug and then running once built.

  4. Derk J

    25 May 2019 Pre-Release Testers, Xojo Pro

    Put the dll next to your exectuable on windows systems.

  5. 6 months ago

    Sean A

    28 May 2019 US.WI.North

    I looked in dependancy walker and now I see all C exports, but still cant load the functions - I get the "Function not found" error. Where does one put the library for debug running? Do I need a full Windows license for this to work?

  6. Sean A

    28 May 2019 US.WI.North

    @Derk J - what executable? I am just debugging so far. Do you know where it should go for debugging? I tried just a folder in 'c:\xojolibs\lib.ddl" and hard code loading to that path but the same error comes up

  7. Norman P

    28 May 2019 Pre-Release Testers, Xojo Pro under THE bus
    Edited 6 months ago

    you probably dont have a dir next to the Xojo IDE executable called "Debug Plugins"
    create that and drop your dll in there
    that _should_ then load IF its a dll implementing a Xojo plugin and all the required Xojo plugin entry points

    you do have to restart the IDE to make it load

  8. Sean A

    28 May 2019 US.WI.North
    Edited 6 months ago

    Thanks Norm, that didnt work. Its not an IDE plugin, its an external 3rd party .dll that does some data manipulation. The function are all experted as C in dep walker. I have hard pathed the Declares;
    Declare Function Initdll Lib "c:\XojoLibs\Plugin.dll" () As Integer
    since the initdll function returns a 1 or 0.

    result = Initdll()

    I get the "Function not found" rte, and deeper msg, "Could not load initdll from c:\XojoLibs\Plugin.dll" which seems like Im doing it right...

  9. Norman P

    28 May 2019 Pre-Release Testers, Xojo Pro under THE bus

    ah didn't realize you're trying to load it manually

    double check exported names match case etc
    probably the path to it as well

    quite honestly you might put the dll next to the exe when you debug and use

    soft Declare Function Initdll Lib "Plugin.dll" () As Integer  

    soft because the runtime wont try to load the dll until this code is somehow run
    and putting it next to the exe to eliminate the possibility that loading it frmo that path is whats faling
    dlls next to the exe should work no matter what

  10. Sean A

    28 May 2019 US.WI.North
    Edited 6 months ago

    Well, I tried the soft decalre and putting it next to the Xojo exe and that didnt work. I tried also a break on the return call that soft declares it, and then pasting a copy of the dll into the debug application folder at run time (since it only exisits at that time) and that also failed with the same errors. Im thinking theres something wrong with the exports in the .dll. Is there any such "dummy" dll out there that I could load in this manner to know the process is correct?

    Or were you referring to another exe Norm?

  11. Norman P

    28 May 2019 Pre-Release Testers, Xojo Pro under THE bus

    Yeah putting it right next to the exe you're about to debug

    If the dll is there by the time you get to the soft declare & its not loading I'd think there's some other issue

    I'm just not sure what assuming things are all properly declared entry points for a DLL
    they use the right declspec ?
    __declspec(dllexport) rest of the function decl ?????

  12. Tim J

    28 May 2019 Pre-Release Testers N. Phoenix, AZ

    No one's asked at this point, but is the DLL written by you to be turned into a Xojo Plugin, or is it a normal DLL that has an API that allows it to be used in VC++ apps?

  13. Derk J

    29 May 2019 Pre-Release Testers, Xojo Pro

    @Sean A @Derk J - what executable? I am just debugging so far. Do you know where it should go for debugging? I tried just a folder in 'c:\xojolibs\lib.ddl" and hard code loading to that path but the same error comes up

    CopyFileStep add it to pre-build settings in the app parent folder on windows systems

  14. Derk J

    29 May 2019 Pre-Release Testers, Xojo Pro

    Ooh and, .net dlls won’t work with xojo. You need native dlls (such as c, c++)

  15. Sean A

    5 Jun 2019 US.WI.North

    Hi Tim - thank you for that. It is the latter; a normal .dll that allows it to be used in C/C++ apps. The "sdk" suggests using visual studio, which obviously I do not want to do. I did open it in the dependancy walker and can see C and C++ exports.

    @Derek - thank you also. This is a "normal" .dll. I am wondering now does it need to be AciveX/COM compliant? Is thart whats wrong?

  16. Norman P

    5 Jun 2019 Pre-Release Testers, Xojo Pro under THE bus

    it shouldnt but you can only load C exports
    C++ ones require runtime support that wont be present

  17. Sean A

    5 Jun 2019 US.WI.North

    Thanks Norm. I am not sure why its not working then. I can see the C exports in DepWalker. I can also see the C++ exports - that wouldnt cause a problem would it?

  18. Norman P

    5 Jun 2019 Pre-Release Testers, Xojo Pro under THE bus

    Dunno to be honest
    But if you open debug view or something and run your app I dont know if that would show dll loading errors
    I'm sure there has to be one of the many tools available that would show you if there were

  19. Andrew L

    5 Jun 2019 San Francisco, CA, USA

    Can you share the DLL file?

    DLL function names are case sensitive; maybe it's supposed to be InitDll, InitDLL, etc.

  20. Sean A

    5 Jun 2019 US.WI.North

    @Derek - I tried creating the build CopyFileStep and placed it under the windows build setting per the docs, added my .dll and then set the "applies to" to both "Both" and "Debug" and I get an error, "The script 'CopyDll' cant copy files to the destination in a pre build step. The destination does nto exist yet. This step will not be executed." Wierd, re reading as I must have something wrong...also now getting an update and second try wont let me move the CopyFileStep from Contents to BuildSettings. arghh.

    @Andrew - thank you for the offer but it has some unprotected IP in it. I am copying the calls from the export list in the header file and have compared the cases to the DepWalker exports - one can copy the name right outta there and paste into xojo. So Im sure its not a case issue.

  21. Newer ›

or Sign Up to reply!