Skip to content

etfovac/lv-net-dll-py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

.NET DLL (with LabVIEW classes) in Python License: MIT DOI

Access a .NET DLL (with LabVIEW classes) in Python

    ca_obj = ClientApp1Lib.ClientApp1Lib.ClientApp1()  
    # alas, it calls "new" which triggers file search popup window (known LabVIEW class issue)  
    # so start with a non initialized obj ref and use Create.vi to initialize the LabVIEW class ref
    ca_obj = AssemblyLib.ClientApp1Lib.ClientApp1  
    ca_Type = clr.GetClrType(AssemblyLib.ClientApp1Lib.ClientApp1) # get type  
    print(ca_Type.FullName, "\t", ca_Type)  
    # GetUninitializedObject to avoid constructor and 'new' issue  
    ca_obj = System.Runtime.Serialization.FormatterServices.GetUninitializedObject(ca_Type)  
    print(ca_obj.IsValid(), "\t", ca_obj) # False
    ca_obj = AssemblyLib.ClientApp1Lib.ClientApp1.Create(ca_obj, ca_obj)
    print(ca_obj.IsValid(), "\t", ca_obj) # True

Note: For more on the constructor node issue in VS see 'new' triggers browsing to lvclass file on disk

Dependency

ClientApp1.dll (my InteropAssembly example)

References

ConsoleApp_RA_e0/Program.cs (my C# Console example)
How to call a dynamic library (pythonnet wiki)
python for net how to explicitly create instances of csharp classes (stackoverflow qa)