ExecuteAutomation

Calling DLL files in QTP using CreateObject

There are situations where we might need more functionality for our test framework which our QTP and Vbscript might not able to be provide us. We know the .Net really powerful and there are lot of in-build classes, methods and properties available which we use them in C# or VB.Net, if we need to use the same in QTP, we can do so by using our very know “CreateObject” method. There are lot of DLL files available in .Net framework once you install, you can see them of course from your assembly folder under Windows directory, which we call as GAC (Global Assembly Cache). We can almost use all of them, if we really need them and provided we know the exact functions and parameters to pass with the function. In this demonstration, I am going to create a simple DLL file using “Class Library” project in Visual Studio and then going to use the same DLL in QTP. So lets get started. Step 1 As I was saying, first we need to create a DLL file, which you can do so by using Visual Studio Class library project. Step 2 Next create a Class say “Libs” and create a very simple  functions as shown below
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ForQTPLibs
{
    public class Libs
    {
        /// Adds Two integer values and returns the result
        public int AddIntegers(int val1, int val2)
        {
            return val1 + val2;
        }
        /// Adds Two decimal values and returns the result
        public decimal AddDecimals(int val1, int val2)
        {
            return val1 + val2;
        }

        /// Returns todays date as like Date() function in Vbscript
        public DateTime Today()
        {
            return DateTime.Today;
        }
    }
}
Step 3 Before deploying the DLL file, all we need to do is make the DLL accessible from your QTP. This we can do so by following simple procedure. Click on the project properties and Click on the Assembly Information from from Application Tab Make sure that you Check the “Make assembly COM-Visible” Next go to “Build” tab and Check the “Register for COM interop” as shown Step 4 Now build the complete project and now as you know your DLL file should have generated at your \bin\debug folder. Step 5 The final step is to call the DLL file from QTP, all you need to write a simple code as shown below
'Use .Net DLL files Using Create Object
Set DotNetObject = CreateObject("ForQTPLibs.Libs")

msgbox(DotNetObject.AddIntegers(20,30))
msgbox(DotNetObject.Today())
Result Once you run the script, you will get the output That’s it !!! Please leave your comments and rate the post !!! Also please mail me @ karthik@executeautomation.com if you find this post needs any modification.