Intergrating Navision with external application

jks
jks Member Posts: 277
Hi all,

I have successfully integrated an external application XYZ designed by me in C++ with Navision using ATL COM. i.e I am invoking some of the functions of application XYZ in Navision via ATL COM. But the problem is I had to copy all dlls of application XYZ in the installation directory of Navision. i.e in
C:\Program Files\Microsoft Business Solution-Navision\Client

If I do not do this then when I run Navision to access fun. of XYZ, Navision crashes. This is because I guess Navision's exe finsql.exe and its dll are available in Client folder.

Is there any way to solve this problem. i.e I do not want to copy the dlls of XYZ application in Client folder of Navision.

Thanks for any help.

Comments

  • Waldo
    Waldo Member Posts: 3,412
    Is registring of the dll's not working? regsvr32 "drive:\path\dllname.dll" ?

    Eric Wauters
    MVP - Microsoft Dynamics NAV
    My blog
  • jks
    jks Member Posts: 277
    No. It doesn't work.
    I have >10 dlls of application XYZ. And one COM dll.

    When I register COM dll say abc.dll from a specific path say d:\temp then it loads only one dependent dll say opq.dll of XYZ from that path. But then
    opq.dll searches for its dependent dll in the Client directory of Navision installation and then crashes if I haven't loaded all 10 dlls there in Client folder.

    Is there any change that should I do in my COM dll or in any dll of XYZ so that all dll gets loaded from the path d:\temp.

    Please help.
  • jjanauskas
    jjanauskas Member Posts: 49
    So, maybe you should keep those dlls in \windows\system32 or add the path of those dll's to system environment variable PATH
  • jks
    jks Member Posts: 277
    Hi,

    Thanks for your help. But it also doesn't work.
    I set PATH env. variable in My Computer's property to d:\temp and also copied dlls in c:\winnt\system32. but no luck.

    ](*,) ](*,)
  • lubost
    lubost Member Posts: 633
    I think, your only way is to minimize number of DLLs by merging the code to one.

    If it is not real, you can create simple batch (.BAT) to correctly install and register all DLLs to target PC.
  • Waldo
    Waldo Member Posts: 3,412
    Yes, but how do you know (or does the .Bat know) where NAV is installed?

    Eric Wauters
    MVP - Microsoft Dynamics NAV
    My blog
  • kine
    kine Member Posts: 12,562
    see registry key HKEY_LOCAL_MACHINE\SOFTWARE\Navision\Microsoft Business Solutions-Navision\W1 4.00 etc...
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • jks
    jks Member Posts: 277
    Hi all,

    Mydlls of application XYZ are not COM dll. I mean to say I can't register them.
    My XYZ application is the mixture of managed and unmanaged code. i.e some of the dlls of XYZ are compiled in .net.
    So one thing that I have noticed is my Navision crashes only if .net dlls have not been placed in Client folder of Navision.

    Should I change something in my .net specific dlls.

    Thanks for any help.