====== _DLL Function ====== In VO functions from DLLs can be used with the ''_dll function'' statement. This works als in X#, but the ''ptr'' datatype is not available in the Core dialect, you need something else, often the ''intptr'' datatype, but this depends on the function declaration. There are two possibilities in X#. The first is the VO compatible syntax: _dll function ShowWindow(hWnd as IntPTR, nCmdShow as int) as logic pascal:user32.ShowWindow ANSI and the other the C# compatible syntax: [DllImport("user32.dll")] function ShowWindow(hWnd as IntPTR, nCmdShow as int) as logic pascal For the C# syntax you need to include also using System.Runtime.InteropServices Of course you can also declare these functions as methods of a class: using System.Runtime.InteropServices using System.Text class IniFile [DllImport("kernel32.dll",CharSet:=CharSet.Ansi,EntryPoint:="GetPrivateProfileString")]; static method GetString(lpAppName as string, lpKeyName as string, lpDefault as string, lpBuffer as StringBuilder, nSize as dword, lpFileName as string) as dword pascal [DllImport("kernel32.dll",CharSet:=CharSet.Ansi,EntryPoint:="GetPrivateProfileString")]; static method GetString(lpAppName as string, lpKeyName as string, lpDefault as string, lpBuffer as byte[], nSize as dword, lpFileName as string) as dword pascal [DllImport("kernel32.dll",CharSet:=CharSet.Ansi,EntryPoint:="WritePrivateProfileString")]; static method WriteString(lpAppName as string, lpKeyname as string,lpString as string, lpFileName as string) as logic pascal [DllImport("kernel32.dll",CharSet:=CharSet.Auto,EntryPoint:="GetPrivateProfileInt")]; static method GetInt(lpAppName as string, lpKeyname as string,nDefault as int , lpFileName as string) as int pascal [DllImport("kernel32.dll",CharSet:=CharSet.Ansi,EntryPoint:="GetPrivateProfileSection")]; static method GetSection(lpAppName as string, lpszReturnBuffer as byte[], nSize as int, lpFileName as string) as logic pascal end class Please note that in the _dll statement the calling convention must be specified (in VO this is not necessary). Please see here: [[dll_function_changes|_dll function changes]]