<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://docs.xsharp.it/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://docs.xsharp.it/feed.php">
        <title>docs.xsharp.it vo_to_net</title>
        <description></description>
        <link>https://docs.xsharp.it/</link>
        <image rdf:resource="https://docs.xsharp.it/lib/exe/fetch.php?media=favicon.ico" />
       <dc:date>2026-05-16T06:57:14+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://docs.xsharp.it/doku.php?id=vo_to_net:buffer&amp;rev=1520056130&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.xsharp.it/doku.php?id=vo_to_net:functions_to_net&amp;rev=1520056080&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.xsharp.it/doku.php?id=vo_to_net:getexefilename&amp;rev=1520055478&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.xsharp.it/doku.php?id=vo_to_net:getregistrydword&amp;rev=1520056428&amp;do=diff"/>
                <rdf:li rdf:resource="https://docs.xsharp.it/doku.php?id=vo_to_net:pcall&amp;rev=1532841750&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://docs.xsharp.it/lib/exe/fetch.php?media=favicon.ico">
        <title>docs.xsharp.it</title>
        <link>https://docs.xsharp.it/</link>
        <url>https://docs.xsharp.it/lib/exe/fetch.php?media=favicon.ico</url>
    </image>
    <item rdf:about="https://docs.xsharp.it/doku.php?id=vo_to_net:buffer&amp;rev=1520056130&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-03T05:48:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vo_to_net:buffer</title>
        <link>https://docs.xsharp.it/doku.php?id=vo_to_net:buffer&amp;rev=1520056130&amp;do=diff</link>
        <description>Buffer() not supported anymore

The Vulcan runtime does not support the Buffer() function anymore. Change to Space() in your code.</description>
    </item>
    <item rdf:about="https://docs.xsharp.it/doku.php?id=vo_to_net:functions_to_net&amp;rev=1520056080&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-03T05:48:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vo_to_net:functions_to_net</title>
        <link>https://docs.xsharp.it/doku.php?id=vo_to_net:functions_to_net&amp;rev=1520056080&amp;do=diff</link>
        <description>VO functions translated to .NET

	*  GetExeFileName Get the name of the current executable
	*  GetRegistryDWord() Get a dword value from the registry
	*  PCall Call a function by its pointer
	*  Buffer() Buffer() not supported anymore</description>
    </item>
    <item rdf:about="https://docs.xsharp.it/doku.php?id=vo_to_net:getexefilename&amp;rev=1520055478&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-03T05:37:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vo_to_net:getexefilename</title>
        <link>https://docs.xsharp.it/doku.php?id=vo_to_net:getexefilename&amp;rev=1520055478&amp;do=diff</link>
        <description>GetExeFileName

In VO most programmers used libraries and not DLLs. So, when executing any of these functions, they are called directly from the executable, and therefore this code works in VO:

function GetExeFileName() as string
local pszBuffer as psz
local cName as string

pszBuffer := MemAlloc( 1024 )
GetModuleFileName( _GetInst(), pszBuffer, 1023 )
cName := PSZ2String( pszBuffer )
MemFree( pszBuffer )

return cName</description>
    </item>
    <item rdf:about="https://docs.xsharp.it/doku.php?id=vo_to_net:getregistrydword&amp;rev=1520056428&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-03-03T05:53:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vo_to_net:getregistrydword</title>
        <link>https://docs.xsharp.it/doku.php?id=vo_to_net:getregistrydword&amp;rev=1520056428&amp;do=diff</link>
        <description>GetRegistryDWord()

Consider the following VO function:

function RegistryDWord( hKey as ptr, cSubKey as string, cValueName as string ) as int pascal
local ptrKey as ptr
local nData as int
local nResult as long
local nLen as dword

nResult := RegOpenKeyEx( hKey, String2Psz( cSubKey ), 0, KEY_QUERY_VALUE, @ptrKey )
if nResult == ERROR_SUCCESS  
  nLen := 4
  nResult := RegQueryValueEx( ptrKey, String2Psz( cValueName ), null_ptr, null_ptr, @nData, @nLen )
  if nResult != ERROR_SUCCESS
    nData :=…</description>
    </item>
    <item rdf:about="https://docs.xsharp.it/doku.php?id=vo_to_net:pcall&amp;rev=1532841750&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-07-29T05:22:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vo_to_net:pcall</title>
        <link>https://docs.xsharp.it/doku.php?id=vo_to_net:pcall&amp;rev=1532841750&amp;do=diff</link>
        <description>PCall vs PCallNative

PCall() and PCallNative() are pseudo-functions or intrinsic functions - they do not need any runtime because they are replaced by the compiler.

The X# compiler needs a typed function pointer for PCall() to work (and you need the compiler switch /vo6</description>
    </item>
</rdf:RDF>
