We can use an external DLL with QTP which is not otherwise included with the windows system or not available in vbscript. For using an external DLL with QTP you need to use EXTERN. Using EXTERN we can access any DLL file at any location within the hard drive of your system by specifying the file path.
Syntax -
Extern.Declare(RetType, MethodName, LibName, Alias [, ArgType(s)])
Dim xmlPath
xmlPath = "C:\PROGRA~1\"
Print xmlPath
xmlPath = "C:\PROGRA~1\"
Print xmlPath
'Retrieving the long path name from the short path name using an external DLL file 'kernel32.dll
Dim val, retValue, myExtern
Set myExtern = CreateObject("Mercury.ExternObj")
Set myExtern = CreateObject("Mercury.ExternObj")
'Create an object of Mercury.ExternObj
myExtern.Declare micString,"GetLongPathName", "kernel32.dll",
"GetLongPathNameA",micString,micString + micByRef ,micDword
'Making a call to the DLL file kernel32.dll and accessing its GetLongPathNameA 'function and declaring the supported parameters
val = myExtern.GetLongPathName(xmlPath,retValue,256)
'retValue contains the actual longpath
'retValue contains the actual longpath
Print retValue
OUTPUT
OUTPUT
In order to understand as to which parameters will be there for each Extern statement for a specific DLL, you need to access the DLL reference document. If you are trying to call any of the Microsoft Windows DLL files. You can find a complete reference on the MSDN Library -
For the one i have used in the example, you can visit -
Thank you for this, it helped me quite a bit.
ReplyDeleteGood I was in search of this.
ReplyDelete