viXen bug: -

46 views
Skip to first unread message

David Silverwood

unread,
Nov 14, 2025, 3:27:46 PMNov 14
to xbl...@googlegroups.com
Dear Guy,

I'd like to inform you of a bug with viXen,
which occurred today: 14 November  2025, at 20:21:16 GMT.
GuiTellApiError: Last error code 32: The process cannot access the file because it is being used by another process.


Gen50ResourceFile: Can't copy RC File
C:\xblite\programs\guisrc\ressouce.rc
in directory
C:\Users\Watchman\Projects\

OS: Windows 10 ver  10.0-NT

For your review, I attach viXen's corresponding log vixen_log.bak.

This is how it happened:
viXen was re-loading my project when it displayed a technical error message
(see the attached screen capture).

Could you please publish a fix as soon as possible as I can't live with a buggy viXen?
Thanks in advance.

Regards, David
vixen_log.bak

Guy LONNE

unread,
Nov 14, 2025, 8:02:28 PMNov 14
to xbl...@googlegroups.com
Hi David!
I got your bug report, which I experienced earlier. I have an idea of what it is, but I have to look up the log you sent. One thing I'll look up is the Windows version. Why? Because I had to go around Windows 10's new way to handle the permissions on files that are updated. I'm AFK, but I'll see what I can do just by memory.
Bye! Guy

--
You received this message because you are subscribed to the Google Groups "xblite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xblite+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/xblite/CAH_LReTQLk14LKrRTDjm0jGcZMX0nZTG3W0pUnx06T0R59uVRQ%40mail.gmail.com.

Guy LONNE

unread,
Nov 15, 2025, 12:21:02 AMNov 15
to xbl...@googlegroups.com
Hi David!

Since you are installing viXen in another folder than the dedicated C:/xblite/programs, you have a permission problem with viXen's work files.

Fix: Revoke manually the status "read only" of your installation folder to grant write rights to viXen's work files.

However, my experience has taught me that the only "safe" place to install anything XBLite is: C:/xblite/programs.

Why? Because /programs contains all the needed dll: xst.dll + xsx.dll at the very least, which I have to provide myself in viXen's Inno Setup installer for vxbl.exe to be self-sufficient.

Bye! Guy


Guy LONNE

unread,
Nov 15, 2025, 5:14:21 AMNov 15
to xbl...@googlegroups.com
Hi David.

I looked in the log you sent, and it seems to me that you ran ViXen from XSED. Better use the compiled version that you get from SourceForge as I compiled vxbl.x with the flag -rc to reduce the size of vxbl.asm. The reason is that because of bad design from my part, I allowed viXen to hit a size wall in memory. If you add XSED, you deprive GoAsm of RAM, and GoAsm can't assemble correctly vxbl.x from within XSED.

As soon as I can put my fingers on my computer (next week), I'll be able to reproduce your bug, and we can work on a fix.

Bye! Guy

Guy LONNE

unread,
Nov 20, 2025, 3:19:55 PM (9 days ago) Nov 20
to xblite
Hi David.

In case there was a problem with your previous download, I've just re-uploaded the following to SourceForge:
1.vixen_setup_v1_99u_windows10.exe
2.vixen_v1_99u.zip
3.vixen_setup_v1_99u.exe

Explanation:
- vixen_setup_v1_99u_windows10.exe was generated under Windows 11, using the latest version of xblite.exe from vixen_v1_99u.zip.

- vixen_setup_v1_99u.exe was generated on my Thinkpad (from around 1996!), under Windows XP, using the older version of xblite.exe, from the same sources as vixen_v1_99u.zip: vxbl.x and /guisrc.

I've already successfully tested vixen_setup_v1_99u.exe on ReactOS and Linux Mint Wine. It should therefore work as a fallback solution for vixen_setup_v1_99u_windows10.exe if the latter fails.

So, try again and let me know if it solved your problem.

Bye! Guy

Guy LONNE

unread,
Nov 22, 2025, 6:00:19 AM (8 days ago) Nov 22
to xblite
Hello David.

I remember of a bug that I experienced on 23 January 2023 totally by chance, and for which I wrote a fix in xsx.x.

The bug concerns XstFileExists, which I use extensively in viXen.

The bug: XstFileExists opens in read mode the file whose physical presence must be verified, but considers that any error indicates that file doesn't actually exist.

In fact, the file might be blocked by a system process, an antivirus program, or something else.

To make it worse, Windows has an optimization option that can play tricks on us: Windows can lock files and never forgets that locking, even after a reboot.

After this bug, I unchecked this optimization to avoid being caught out twice, because this bug persists, even after a million reboots.

I provided this fix to D., but I suppose he hadn't had time to fix it in xsx.x.

Bye! Guy

'
'
' ##############################
' #####  XstFileExists ()  #####
' ##############################
'
' GL-23jan23-old---
'' Determine if file exists. Returns 0 on success, -1 on failure.
''
'FUNCTION XstFileExists (file$)
'
' IFZ file$ THEN RETURN (-1)
' ofile = XxxOpen (file$, $$RD)
' IF ofile = -1 THEN RETURN (-1)
' XxxClose (ofile)
'
'END FUNCTION
' GL-23jan23-old===
' GL-23jan23-new+++
' New: RETURNs an error message on an OPEN fail.
'
' Determines if a file exists. Returns 0 on success, -1 on failure.
'
' New error message.
' For example (simplified):
' errNum = ERROR (0) ' clear last error code
' bErr = XstFileExists (file$)
' IF bErr THEN ' file does not exist
' errNum = ERROR (0) ' get current error, then clear it
' PRINT ERROR$ (errNum)
' ENDIF
'
FUNCTION XstFileExists (file$)
EXTERNAL /shr_data/ errno        ' run-time error number

XLONG fileNumber        ' system file number
'
' To convert errno into an XBLite error.
'
XLONG error        ' for XstSystemErrorToError()
XLONG errLast        ' for ERROR()

XLONG bErr        ' returned error indicator (-1 for any fail, 0 for file exists)
'
' Start clean.
'
bErr = -1 ' Assume fail
errno = 0 ' clear any run-time error
SetLastError (0) ' clear any system error
'
' Try to open the passed file.
'
fileNumber = XxxOpen (file$, $$RD) ' Reading only of course!
IF fileNumber < 0 THEN
' Fail to get a system file number!
errno = GetLastError () ' get system error
XstSystemErrorToError (errno, @error) ' move system error to high word of error value
errLast = ERROR (error) ' set current run-time error, to inform the caller of the exact failure
ELSE
' Success!
bErr = 0        ' (0 indicates that the file exists)
'
' GL-23jan23-fix+++
XxxClose (fileNumber) ' release this good file handle to avoid a permanent lock
' GL-23jan23-fix===
'
fileNumber = 0 ' served its purpose
ENDIF
'
' Clean-up.
'
IFF bErr THEN
SetLastError (0) ' clear any system error
errno = 0 ' clear run-time error
ENDIF
RETURN bErr

END FUNCTION
' GL-23jan23-new===
'

Guy LONNE

unread,
Nov 24, 2025, 5:00:43 AM (6 days ago) Nov 24
to xblite
Hi Silver David.

I think I've fixed the viXen bug that made it unsafe to use in your latest version of XbLite. I can't really test it in my development environment because I work in a controlled environment with many assertions and internal checks.

Could you please download my latest version of viXen from SourceForge and let me know if everything works correctly?

Thanks in advance, and thank you for taking the time to report this bug; my motto: No Bug, No Use!

Bye! Guy

David Silverwood

unread,
Nov 24, 2025, 7:10:10 AM (5 days ago) Nov 24
to xbl...@googlegroups.com
Thanks Guy. I'll test it on my Win10 machine later and see what happens. Much appreciated, especially for the time you still take to look into these little things

Reply all
Reply to author
Forward
0 new messages