[rdnzl-devel] Does rdnzl.tar.gz contain an up-to-date build of rdnzl.dll?

Walter GR waltergr at aol.com
Mon Sep 6 03:55:14 UTC 2010


Hi all,

In brief:

Attempting a minimal Windows Presentation Foundation application using 
the RDNZL 0.13.3 tarball and LispWorks Personal 5.1.1 resulted in a "The 
calling thread must be STA" error.  Using a copy of rdnzl.dll built in 
Visual Studio C++ 2010 Express eliminated the error.  Does rdnzl.tar.gz 
contain an old(er) build of rdnzl.dll, or is there something else at work?


In detail:

After appropriate calls to "import-assembly", "use-namespace", etc., I 
tried the following, and got the subsequent error:

RDNZL-USER 9 > (let* ((win (new "Window"))
                       (app (new "Application")))
                    (setf [%Height win] 300)
                    (setf [%Width win] 300)
                    [Run app win])

Error: .NET error (System.InvalidOperationException): The calling thread 
must be STA, because many UI components require this.
   1 (abort) Return to level 0.
   2 Return to top loop level 0.

Type :b for backtrace, :c <option number> to proceed,  or :? for other 
options


I downloaded the current rdnzl-cpp tarball, and grepped for threading, 
finding

RDNZL\RDNZL.vcxproj: 
<CLRThreadAttribute>STAThreadingAttribute</CLRThreadAttribute>
RDNZL\Stdafx.cpp: 
System::Threading::Thread::CurrentThread->ApartmentState = 
System::Threading::ApartmentState::STA;


Having no idea how to go about debugging the problem directly, I took a 
shot in the dark and built the DLL in Visual Studio C++ 2010 Express. 
It built fine.  I replaced the existing rdnzl.dll and tried again: it 
worked perfectly!


Let me know if I can provide any additional details.

Thanks,

Walter




More information about the rdnzl-devel mailing list