The 1.3.3 version places additional dlls in Bin folder

Questions regarding the use of the C++ SDK for Server or Client development or integration into customer products ...

Moderator: uasdkcpp

Post Reply
Antoni Raj
Hero Member
Hero Member
Posts: 33
Joined: 25 Oct 2013, 05:26

The 1.3.3 version places additional dlls in Bin folder

Post by Antoni Raj »

Hi,
I am using C++ OPC UA Server SDK (Basic) binary in one of our product. Now I would like to upgrade to 1.3.3 version. I have downloaded the evaluation version and installed in my machine.
I could see the dlls libeay32.dll, libxml2.dll, uastack.dll and their corresponding debug dlls are also been copied in Bin folder (C:\Program Files\UnifiedAutomation\UaSdkCppBundleEval\bin).
But in the previous version we do not have this dlls in Bin folder.
Is this expected behavior ?.
Please let me know.

Because of this behavior, when I make any UA Server using this version, we are forced to place these dlls in Release location.

Thanks in advance for your help.

Thanks
Antoni

User avatar
Support Team
Hero Member
Hero Member
Posts: 3072
Joined: 18 Mar 2011, 15:09

Re: The 1.3.3 version places additional dlls in Bin folder

Post by Support Team »

Hi Antoni,

that is correct the UA Stack and the third party libraries are shared DLLs and are located in the "bin" directory together with the executable. The idea is to be able to change/replace e.g the OpenSSL library to a newer version without replacing the complete server (your product). This gives YOU the possibility to react on e.g. security updates in OpenSSL individually.

In a very early version of the SDK (March 2010) this was not possible, but since 1.3.x we use the stack and the third party as shared DLL. When using the source code edition you would still have the possibility to "static" linking of these libraries, but we recommend go for shared DLL.

Best Regards
Support Team

Antoni Raj
Hero Member
Hero Member
Posts: 33
Joined: 25 Oct 2013, 05:26

Re: The 1.3.3 version places additional dlls in Bin folder

Post by Antoni Raj »

Hi,
Thanks for the clarification.
We appreciate it..


Thanks
Antoni

Antoni Raj
Hero Member
Hero Member
Posts: 33
Joined: 25 Oct 2013, 05:26

Re: The 1.3.3 version places additional dlls in Bin folder

Post by Antoni Raj »

Hi,
How can I build Openssl?
I have downloaded from http://www.openssl.org (openssl-1.0.1m.tar.gz).
It will be great if you help me on this...


Thanks
Antoni

User avatar
Support Team
Hero Member
Hero Member
Posts: 3072
Joined: 18 Mar 2011, 15:09

Re: The 1.3.3 version places additional dlls in Bin folder

Post by Support Team »

Hi Antoni,

generally you should follow the build instructions provided by OpenSSL.org. Those instructions are very detailed.

As a quick reference for experienced users we have written some brief step-by-step instruction:
https://www.unified-automation.com/down ... ation.html

When replacing OpenSSL (libeay.dll) with new one, you must check first which one you have and replace with the newest one of the correct family (e.g. a 0.9.8.x should be replaced with a 0.9.8.y, however you should not replace a 0.9.8.x with a 1.0.2.y) as this may cause interface changes and hence incompatibilities.

Best Regards
Support Team

Antoni Raj
Hero Member
Hero Member
Posts: 33
Joined: 25 Oct 2013, 05:26

Re: The 1.3.3 version places additional dlls in Bin folder

Post by Antoni Raj »

Hi,

I use ActiveX which uses 1.4.2 version of uastack (C++) dll.

Steps to See the issue
-------------------------
1. Open VB6 (Standard EXE) IDE
2. Drag and Drop the ActiveX
3. Run the application (Form1 appears)
4. Close the application by clicking on the cross to close the form.
5. The application closes then the IDE closes / crashes (Actually Application should close but IDE should not close)


But this works fine with VS2010 and VS2012.

I am suspecting it may be because of uastack dlls which is shared from version 1.3.3 onwards.

Do you have any idea for the cause in VB6?

Thanks in advance for your help.

Thanks
Antoni

User avatar
Support Team
Hero Member
Hero Member
Posts: 3072
Joined: 18 Mar 2011, 15:09

Re: The 1.3.3 version places additional dlls in Bin folder

Post by Support Team »

Hi Antoni,

You must check if your unloading code for the SDK is executed and what is the difference there between VB6 and your other environments. You can activate the client side trace (see CLIENT_CPP_SDK_ACTIVATE_TRACE define in client_cpp_sdk.cpp contained in the client sample code) and you can add trace outputs to your load/unload code to see differences.

Best Regards,
Unified Automation Support Team

Post Reply