<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 64-bit_OWLNext</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>Recent changes to 64-bit_OWLNext</description><atom:link href="https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/feed" rel="self"/><language>en</language><lastBuildDate>Mon, 02 Mar 2026 11:31:34 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/feed" rel="self" type="application/rss+xml"/><item><title>64-bit_OWLNext modified by Vidar Hasfjord</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v47
+++ v48
@@ -1,6 +1,5 @@
 # 64-bit OWLNext
-
-This article describes the changes made in [OWLNext 6.40](OWLNext_Stable_Releases#version-643) and later to support the 64-bit build mode.
+This article describes the changes made in [OWLNext 6.40](OWLNext_Stable_Releases#h-640-series) and later to support the 64-bit build mode.

 [TOC]

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vidar Hasfjord</dc:creator><pubDate>Mon, 02 Mar 2026 11:31:34 -0000</pubDate><guid>https://sourceforge.net52f1d60a4e65cc015a86eea6bf89fb7e6ac46f93</guid></item><item><title>64-bit_OWLNext modified by Vidar Hasfjord</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v46
+++ v47
@@ -17,11 +17,11 @@

 The following changes have been implemented for 64-bit support in OWLNext. 

-  1. Implementation of x86-64 thunks for the supported 64-bit compilers. (*Completed*) 
-  2. Replacement of 32-bit types and Windows API calls by 64-bit compatible versions. (*Completed*) 
-  3. 64-bit-correct message dispatch. (*Completed*) 
-  4. Policy for handling 64-bit quantities. (*Completed*) 
-  5. Build system support for the 64-bit compilers. (*Completed for Microsoft compilers, while Embarcadero compilers have partial support*) 
+  1. Implementation of x86-64 thunks for the supported 64-bit compilers.
+  2. Replacement of 32-bit types and Windows API calls by 64-bit compatible versions.
+  3. 64-bit-correct message dispatch.
+  4. Policy for handling 64-bit quantities.
+  5. Build system support for the 64-bit compilers.

 &lt;br/&gt;
 ### Implementation of x86-64 thunks for the supported compilers
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vidar Hasfjord</dc:creator><pubDate>Fri, 03 May 2024 20:33:26 -0000</pubDate><guid>https://sourceforge.net5dd7c51ae6c3c3700d56853685de79ab5a72be7b</guid></item><item><title>64-bit_OWLNext modified by Vidar Hasfjord</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v45
+++ v46
@@ -97,14 +97,13 @@

 This means that, in general, the client code is responsible for detecting and handling 64-bit quantities before calling OWLNext code, e.g. by reporting errors. For example, the client code should check strings for 64-bit size and handle it appropriately, e.g. throw an exception, before passing a string to OWLNext.

-~~~~
-:::C++
+~~~C++
 void SetText(TEdit&amp;amp; c, const tstring&amp;amp; t)
 {
   if (t.size() &amp;gt; INT_MAX) throw runtime_error("Too much text for OWLNext");
   c.SetText(t);
 }
-~~~~    
+~~~    
 &lt;br/&gt;

 ---
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vidar Hasfjord</dc:creator><pubDate>Sun, 30 Apr 2023 21:26:03 -0000</pubDate><guid>https://sourceforge.net8e97be8285c234d1eb81d748cf4b463a986655da</guid></item><item><title>64-bit_OWLNext modified by Vidar Hasfjord</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v44
+++ v45
@@ -26,7 +26,7 @@
 &lt;br/&gt;
 ### Implementation of x86-64 thunks for the supported compilers

-This change was implemented in [r759] and shipped in OWLNext 6.32. It involved a complete overhaul of the thunk generation code, since the 64-bit Microsoft compiler no longer supports in-line assembly code. The new implementation creates a thunk by linking a chunk of raw machine code with the window pointer and the address of the dispatch function. This run-time linking is done using a C++ template that is instantiated for the relevant compiler and build mode. As before the thunk is allocated on an executable memory heap, as to support the Data Execution Prevention safety feature in Windows XP and later. 
+This change was implemented in [r759] and shipped in OWLNext 6.32. It involved a complete overhaul of the thunk generation code, since the 64-bit Microsoft compiler no longer supports in-line assembly code. The new implementation creates a thunk by linking a chunk of raw machine code with the window pointer and the address of the dispatch function. This run-time linking is done using a C++ template, which is instantiated for the relevant compiler and build mode. As before the thunk is allocated on an executable memory heap, as to support the Data Execution Prevention safety feature in Windows XP and later. 

 For more information about thunking in OWLNext, read [Windows Message Dispatch in OWLNext](Windows_Message_Dispatch_in_OWLNext), and for the gory details, see the source code ([source/owlcore/owl.cpp](http://sourceforge.net/p/owlnext/code/1822/tree/trunk/source/owlcore/owl.cpp#l564)). 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vidar Hasfjord</dc:creator><pubDate>Sun, 30 Apr 2023 21:22:04 -0000</pubDate><guid>https://sourceforge.net5d1d1acc1ef903656ccf42d4bd5bb22f9ab6e90a</guid></item><item><title>64-bit_OWLNext modified by Vidar Hasfjord</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v43
+++ v44
@@ -67,7 +67,7 @@
 &lt;br/&gt;
 #### A note about handles and truncation

-The Windows API widely uses *handles*; internal object references (indices) that are casted to, and hence look like, pointers. While these pointers are 64-bit in x64 build mode, handles only use the lower 32 bits, i.e. the upper 32 bits are insignificant. The MSDN documentation states:
+The Windows API widely uses *handles*; internal object references (indices) that are cast to pointers, and hence look like regular pointers. While these pointers are 64-bit in x64 build mode, handles only use the lower 32 bits, i.e. the upper 32 bits are insignificant. The MSDN documentation states:

 &amp;gt; 64-bit versions of Windows use 32-bit handles for interoperability. When sharing a handle between 32-bit and 64-bit applications, only the lower 32 bits are significant, so it is safe to truncate the handle (when passing it from 64-bit to 32-bit) or sign-extend the handle (when passing it from 32-bit to 64-bit). 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vidar Hasfjord</dc:creator><pubDate>Sun, 15 Sep 2019 14:27:06 -0000</pubDate><guid>https://sourceforge.net8b287fadbc4ba45de55549d769611a24cc8ef6e8</guid></item><item><title>64-bit_OWLNext modified by Vidar Hasfjord</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v42
+++ v43
@@ -21,7 +21,7 @@
   2. Replacement of 32-bit types and Windows API calls by 64-bit compatible versions. (*Completed*) 
   3. 64-bit-correct message dispatch. (*Completed*) 
   4. Policy for handling 64-bit quantities. (*Completed*) 
-  5. Build system support for the 64-bit compilers. (*Completed for VC++, BCC64 has partial support*) 
+  5. Build system support for the 64-bit compilers. (*Completed for Microsoft compilers, while Embarcadero compilers have partial support*)

 &lt;br/&gt;
 ### Implementation of x86-64 thunks for the supported compilers
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vidar Hasfjord</dc:creator><pubDate>Sun, 04 Aug 2019 15:05:03 -0000</pubDate><guid>https://sourceforge.netd5680e48020daa5e667623407d9b152ef5ae15ba</guid></item><item><title>64-bit_OWLNext modified by Vidar Hasfjord</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v41
+++ v42
@@ -4,10 +4,13 @@

 [TOC]

+&lt;br/&gt;
+
 ---
 ## Preliminary support in earlier versions

 OWLNext 6.32 introduced preliminary support for 64-bit. This consisted mainly of changes to some 32-bit API calls, and an overhaul of the thunking mechanism for message dispatch. OWLNext 6.34 included further fixes to the dispatch framework. However, the 64-bit build mode for these early versions is not officially supported and should not be used in production code. 
+&lt;br/&gt;

 ---
 ## Changes in OWLNext 6.40 to support 64-bit
@@ -102,6 +105,7 @@
   c.SetText(t);
 }
 ~~~~    
+&lt;br/&gt;

 ---
 ## References
@@ -109,3 +113,5 @@
   * [Windows Message Dispatch in OWLNext](Windows_Message_Dispatch_in_OWLNext)
   * [64-bit feature request ticket](http://sourceforge.net/p/owlnext/feature-requests/6/)
   * [64-bit bug tickets](http://sourceforge.net/p/owlnext/bugs/search/?q=labels:64-bit)
+
+&lt;br/&gt;
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vidar Hasfjord</dc:creator><pubDate>Fri, 16 Mar 2018 10:20:31 -0000</pubDate><guid>https://sourceforge.net0cd9e01f1e1e80fc1b4156c09d2887cbc0fc5def</guid></item><item><title>64-bit_OWLNext modified by Vidar Hasfjord</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v40
+++ v41
@@ -1,6 +1,6 @@
 # 64-bit OWLNext

-This article describes the changes made in [OWLNext 6.40](OWLNext_Stable_Releases#version-642) to support the 64-bit build mode.
+This article describes the changes made in [OWLNext 6.40](OWLNext_Stable_Releases#version-643) and later to support the 64-bit build mode.

 [TOC]

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vidar Hasfjord</dc:creator><pubDate>Tue, 20 Dec 2016 11:26:50 -0000</pubDate><guid>https://sourceforge.net1df0ec0b63fca9967e00a16f0c477cb771eb6da8</guid></item><item><title>64-bit_OWLNext modified by Vidar Hasfjord</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v39
+++ v40
@@ -30,7 +30,7 @@
 &lt;br/&gt;
 ### Replacement of incompatible 32-bit types and Windows API calls

-To support 64-bit, incompatible 32-bit types and calls had to be replaced by agnostic versions that maps to the correct implementation depending on the build mode. This involved the replacement of functions such as SetWindowLong by the agnostic version SetWindowLongPtr. The latter function maps to the former in 32-bit build mode. See forum topic "[64-bit Version](http://sourceforge.net/p/owlnext/discussion/97175/thread/64f66b48)" for details. 
+To support 64-bit, incompatible 32-bit types and calls had to be replaced by agnostic versions that map to the correct implementation depending on the build mode. This involved the replacement of functions such as SetWindowLong by the agnostic version SetWindowLongPtr. The latter function maps to the former in 32-bit build mode. See forum topic "[64-bit Version](http://sourceforge.net/p/owlnext/discussion/97175/thread/64f66b48)" for details. 

 Here is a list of changes made: 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vidar Hasfjord</dc:creator><pubDate>Sun, 27 Sep 2015 12:43:13 -0000</pubDate><guid>https://sourceforge.netf340d101aacd532026a87643ef3a2c88c0b4cbfa</guid></item><item><title>64-bit_OWLNext modified by Vidar Hasfjord</title><link>https://sourceforge.net/p/owlnext/wiki/64-bit_OWLNext/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v38
+++ v39
@@ -18,7 +18,7 @@
   2. Replacement of 32-bit types and Windows API calls by 64-bit compatible versions. (*Completed*) 
   3. 64-bit-correct message dispatch. (*Completed*) 
   4. Policy for handling 64-bit quantities. (*Completed*) 
-  5. Build system support for the 64-bit compilers. (*Completed for VC++; BCC32C/BCC64 has partial support*) 
+  5. Build system support for the 64-bit compilers. (*Completed for VC++, BCC64 has partial support*)

 &lt;br/&gt;
 ### Implementation of x86-64 thunks for the supported compilers
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vidar Hasfjord</dc:creator><pubDate>Sun, 27 Sep 2015 12:31:44 -0000</pubDate><guid>https://sourceforge.netf3d03b7098b87427bd9190fef58fcea005e35cea</guid></item></channel></rss>