cancel
Showing results for 
Search instead for 
Did you mean: 
SOLVED

Python binding CtrlX Works Licensing API for Windows Application

Python binding CtrlX Works Licensing API for Windows Application

cchang
Established Member

Hi Everyone,

I have successfully obtained a license from CtrlX Works using C++ with the CtrlX Works Licensing API. However, I am encountering difficulties when attempting to use Python with pybind11 to wrap the C++ library.

Upon inspecting ctrlxworks.Licensing.dll, I noticed that there are no symbols available. I am wondering if this issue is related to the library being signed, which might be causing problems when loading the DLL with ctypes in Python.

Could anyone please suggest how to use the CtrlX Works Licensing API with Python? Our application is primarily written in Python. As a last resort, I am considering writing a C++ HTTP server as a wrapper, allowing the Python side to handle only HTTP communication.

Thank you for your time and assistance.

Chih-Peng

Reference: License Management - Software Development Kit (boschrexroth.github.io)

2 REPLIES 2

cchang
Established Member

ps. I do load ctrlxworks.Licensing.dll and all relavant libraries, which are required to run with C++ executable that uses ctrlx works Licensing api.

Here is the error I got when I try to run with my python binding. 

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'ctrlxworks.Licensing, Version=3.1.0.67, Culture=neutral, PublicKeyToken=e565dd1c6a0bbb27' or one of its dependencies. The system cannot find the file specified.
at ShowRequiredLicensesDialog(HWND__* parentWindow, SByte* appName, SByte* requiredLicenses)

cchang
Established Member

I got contact with CtrlX developer.

The reason that my python binding not working is that the provided dll contains some non-C++ symbols and somehow pybind cannot resolve it correctly. CtrlX currently have no planned to release python binding reasonly. For now, I will simply use python to call C++ executable for licensing.

If anyone requires it, please contact CtrlX sales for creating a feature request.

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist