VO 32 Bit limitations

Public support forum for peer to peer support with related to the Visual Objects and Vulcan.NET products
Jamal
Posts: 315
Joined: Mon Jul 03, 2017 7:02 pm

VO 32 Bit limitations

Post by Jamal »

Are you using VO 2.8 SP4b (2838) ?
User avatar
ArneOrtlinghaus
Posts: 386
Joined: Tue Nov 10, 2015 7:48 am
Location: Italy

VO 32 Bit limitations

Post by ArneOrtlinghaus »

Yes, Right VO 2.8 SP4b (2838)

Arne
Jamal
Posts: 315
Joined: Mon Jul 03, 2017 7:02 pm

VO 32 Bit limitations

Post by Jamal »

I just built a console app based on the VO wizard and made LWA with my C# code.
See attachment LMA.zip. It contains (console1.exe and vo28run.dll),
Can you test it on affected machines?

Jamal
Attachments
LMA.zip
(251.98 KiB) Downloaded 38 times
User avatar
ArneOrtlinghaus
Posts: 386
Joined: Tue Nov 10, 2015 7:48 am
Location: Italy

VO 32 Bit limitations

Post by ArneOrtlinghaus »

Hi Jamal,
it happens the same as with my largeaddressaware programs:
On the affected machine the program crashes with the same error as reported, on my machine it works correctly.

It would be interesting to know what happens in the Vo28run!_ConvertResult function and what for it is called in the Exe program.

Arne
Jamal
Posts: 315
Joined: Mon Jul 03, 2017 7:02 pm

VO 32 Bit limitations

Post by Jamal »

Yes, since the VO runtime is not in the SDK, may be Robert can shed some light on the internals of the __ConvertResult() function.


Jamal
Jamal
Posts: 315
Joined: Mon Jul 03, 2017 7:02 pm

VO 32 Bit limitations

Post by Jamal »

Since LMA also works on DLLs, what if you make the vo28run.dll LMA?

On my machine it works fine.
User avatar
ArneOrtlinghaus
Posts: 386
Joined: Tue Nov 10, 2015 7:48 am
Location: Italy

VO 32 Bit limitations

Post by ArneOrtlinghaus »

I thought that the Exe program decides about Large address aware only. But changing the flag in the VO28run did not change anything.

I have found the reason why the program did not start on the two machines
We added the registry entry
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management]
"AllocationPreference"=dword:00100000
This is for development testing working of 4 GB usage because it fills memory from top to down.
For some reasons on my machine this switch has only been recognized by Windows when I restarted Windows for the 3rd or 4th time.
Now I have switched off the fast start up by hybernating and Windows recognizes the change of the switch with every windows restart.

It shows that something is not working completely correctly with the large address usage and we have to pay attention. Also trying with X# applications does not work completely. The program starts, but not all dlls are loaded correctly, the string ressources could not be loaded.

Arne
Jamal
Posts: 315
Joined: Mon Jul 03, 2017 7:02 pm

VO 32 Bit limitations

Post by Jamal »

So, without that registry flag, is it working fine?

Also for X#, remember that LWA works only on 32-bit apps (x86). Just wondering!
User avatar
Chris
Posts: 4607
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

VO 32 Bit limitations

Post by Chris »

I think this had to do with converting data to PSZ strings or something like that, but do not know when and how it is called. Robert is currently offline for a few days, maybe he remembers better about this and will give his insight as soon as he's back online.

Chris
Chris Pyrgas

XSharp Development Team test
chris(at)xsharp.eu
User avatar
ArneOrtlinghaus
Posts: 386
Joined: Tue Nov 10, 2015 7:48 am
Location: Italy

VO 32 Bit limitations

Post by ArneOrtlinghaus »

Yes, without the registry setting the program works. The problems with the registry setting show that more space than 2 GB can be used, but there may be limits somewhere in region above 2 GB with certain functions because of some restrictions as the issue I experienced. That's why in the description of largeaddressaware everywhere is written: Test carefully, there may be program parts that do not support pointers above 2GB, and so on,...

Nevertheless it is a nice feature - Better that the program crashes somewhere later and not immediately when reaching 2 GB.

Arne
Post Reply