> For the complete documentation index, see [llms.txt](https://doc.sysdevmobile.com/kalipso5/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.sysdevmobile.com/kalipso5/developing/form/actions/actions-description/group-others/run-dll.md).

# Run DLL

Executes a specified function on a specified DLL.

Action available for the following operating systems:

![](/files/-McsYNWc88h_Sm8kJQcc)

### Parameters

*DLL*

* **DLL ID** *\<numeric> -* If the user previously loaded the DLL file that he wants to run, he just enter here the numeric identification of the loaded DLL.
* **DLL File** *\<string> -* Defines the full path and name of the DLL file that the user wants to run. If the user already have loaded the DLL file, he don't fill this parameter.
* **Function** *\<string> -* The name of the DLL function that the user wants to run.
* **Calling Convention** *\<unquoted string> -* The calling convention of the function. The possible parameters are:
  * stdcall
  * cdecl
  * dynamic

*Target*

* **Type** *\<unquoted string> -* The type of the returned value by the DLL function.
* **Pointer** *\<unquoted string> -* Defines if the user wants to return a pointer to the returned value.
* **Target** *\<unquoted string> -* The control or variable to save the returned value by the DLL function.

*Args*

* **Struct** *\<unquoted string> -* Defines if the argument is a structure or not.
* **Type** *\<unquoted string> -* Defines the type of the argument.
* **Pointer** *\<unquoted string> -* Defines if the argument is a pointer or not.
* **Buffer Size** *\<numeric> -* Defines the buffer size.
* **Argument** *\<unquoted string> -* Defines the value of the argument.

{% hint style="info" %}
Windows Desktop, Windows Mobile and Windows CE can use C/C++ DLLs
{% endhint %}

{% hint style="info" %}
Notes for Android:

* Android C libraries can be used in this case (.so files).
* **HANDLE** type parameters are available only for the **Form**. It will return the current **Activity** as a **jobject.**
* **HWND** type parameters are available for the **Form** and it returns a **ViewGroup** as a **jobject** containing Kalipso Controls and you can add new **View**s to it. It is also available for **Control** and in this case it will return the top level **View** associated with the Kalipso Control as a **jobject**.
* For **HANDLE** and **HWND** if a **dynamic source** is specified and a string "JNIENV" is passed, Kalipso will return the current **JNIEnv\*** to use with JNI.
* **HDC** type parameters are not available.
  {% endhint %}
