Application compile in 64bit output

Hi to everyone…

Does anyone know when it will be possible to compile our programs into 64bit output?

The IDE runs on 64bit but it makes only 32bit output.

Thanks!

Clarion12 is earmarked as the version to produce 64bit output.

Clarion11 is considered a maintainence release.

Hi RchdR.

Thank you for the response!
But do you know when Clarion12 would be released?

Hi Richard

This isn’t quite correct.

Clarion 12 is meant to be the version that supports Unicode.

Clarion 2024 (as mentioned in Bob’s keynote last year) was earmarked as being the 64 bit compiler. As Clarion 12 hasn’t hit the streets yet, it would probably be best not to expect this for some while until after it does.

Mark

3 Likes

@m.losinno

Unfortunately no one knows when clarion 12 or beyond will be released and it’s probably pointless speculating about it. It’s quite clearly late, and even then, as you can see in my response to Richard, Clarion 12 will not be the 64bit version.

The IDE is written in .NET, which means parts of it can technically run in 64-bit, as .NET assemblies can be compiled for either 32 or 64-bit. However, there are several unmanaged components within the IDE, such as the APP Generator, that rely on 32-bit code through pInvoke (platform invocation services). This would likely prevent the entire IDE from running fully in 64-bit without significant changes to those components.

I would suggest if you have a current need for 64bit applications to look at .NET or other tooling for compilers that support 64 bit.

Mark

3 Likes

I seem to remember that in windows 32bit values can still be used in 64bit datatypes and apis mainly because they are 32bit and then 64bit values carry on into the 64bit (namespaces).

Likewise if the need for unicode exists now, use paired byte arrays in the dct to store the unicode, matching strings/cstrings and then the api’s unicodetoansi and ansitounicode to display the data in the strings/cstrings, with calls in the abc filemanager to read and fill from the paired byte arrays.

Use No_Best_Fit_Chars when the codepage getACP()/getOEMCP() cant be determined. Its what Im doing to pull the windows accounts user_info[0 to 4 and 23,24] out of windows.
Other required apis include
lstrlenW
lstrcpyA
UnicodeToAnsi(loc:address,address(loc:unicodestring))
GetSystemDefaultLocaleName()
rtlMoveMemory()
GetSystemDefaultUILanguage()
GetSystemPreferredUILanguage()

If you need to type, cut’n’paste into a clarion app, you’ll need to write wrappers to unicode screencontrols instead of using clarion screen controls.

Ive posted a screenshot of the unicode user accounts to ansi on here using one of my other old accounts. If I can find it I’ll add a link to the screenshot to show its possible to do unicode in c6. :smile:

Edit I thought Id posted the screen shots in this thread, but I cant see the usernames in any of the screenshots, but it gets the unicode info out of windows and displays it in ansi and I cant see any more screenshots in google image search so the screenshots might be in another thread under that account.

Thanks to all…
But Unicode isn’t my problem.
The problem is using other 64bit components such MS Office via OLE/COM.
I the mean time I have to do some outprocserver solutions which are slower than direct access.

Do you need to use OLE/64 to interact with Excel?

Hi Gustavo.

Yes, Word, Excel and Outlook…and some own .net DLLs