<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: 12pt">
<DIV>Hello,</DIV>
<DIV> </DIV>
<DIV align=justify>I have been trying to compile and run Qyoto on Windows. I
have manage to compile qyoto.dll and qt-dotnet.dll along with their smoke
dependencies, using Visual Studio 2008 and 2010. </DIV>
<DIV align=justify>I had to comment out some parts of the code dealing with
QAccessibleBridgePlugin and QAccessibleBridgeFactory in smokeqt and some parts
dealing with QDBus in qyoto, to avoid undefined reference linking errors. If I
understood well, those parts of Qt are not used on Windows so they do not exist
in the binaries. Am I right? I also had to do minor modifications to CMake files
and Visual Studio project files generated by them. For example, the compiler was
set by default to the MS C# 2.0 compiler, which cannot compile qt-dotnet because
it uses extension methods (C# 3.5). Changing the CMAKE_CSharp_COMPILER did not
work. I edited qt-dotnet.vcxproj by hand.</DIV>
<DIV align=justify>I am saying all this so that if I did something I shouldn’t
have someone can tell me. I had no experience with CMake or Qt internals before
this, so I am trying stuff a bit blindly.</DIV>
<DIV align=justify> </DIV>
<DIV align=justify>So as I said I now have qyoto.dll, qt-dotnet.dll,
smokebase.dll, and a dozen smokeqt*.dll. I wrote a small program to test the
library:</DIV>
<DIV align=justify> </DIV>
<DIV><FONT size=2 face="Courier New">static int Main(string[] args)</FONT></DIV>
<DIV><FONT size=2 face="Courier New">{</FONT></DIV>
<DIV><FONT size=2 face="Courier New"> new QApplication(args);</FONT></DIV>
<DIV><FONT size=2 face="Courier New"> return
QApplication.Exec();</FONT></DIV>
<DIV><FONT size=2 face="Courier New">}</FONT></DIV>
<DIV><FONT face="Courier New"></FONT> </DIV>
<DIV>The QApplication contructor ultimatly calls the native method
CallSmokeMethod, which in turn raises an AccessViolationException. I’m kind of
stuck. Prior messages in this mailing list about this exception refer to old
qyoto code that has been fixed already. Could someone help me?</DIV>
<DIV> </DIV>
<DIV>Tools I am using:</DIV>
<DIV>- Windows 7 x64</DIV>
<DIV>- Visual Studio 2010 (also tried with 2008)</DIV>
<DIV>- CMake 2.8</DIV>
<DIV>- Qt 4.7.1 VS2008</DIV>
<DIV>- latest source code from qyoto, smokeqt and smokegen git
repositories</DIV>
<DIV> </DIV>
<DIV>The trace (with some French but I am sure no one will bother :)):</DIV>
<DIV> </DIV>
<DIV><FONT size=2 face="Courier New">Exception non gérée:
System.AccessViolationException: Tentative de lecture ou d'écriture de mémoire
protégée. Cela indique souvent qu'une autre mémoire est endommagée.</FONT></DIV>
<DIV><FONT size=2 face="Courier New"> …
Qyoto.SmokeInvocation.CallSmokeMethod(IntPtr smoke, Int32 methodId, IntPtr
target, IntPtr sp, Int32 items)</FONT></DIV>
<DIV><FONT size=2 face="Courier New"> …
Qyoto.SmokeInvocation.Invoke(String mungedName, String signature, Type
returnType, Object[] args)</FONT></DIV>
<DIV><FONT size=2 face="Courier New"> …
Qyoto.QApplication..ctor(String[] argv)</FONT></DIV>
<DIV><FONT size=2 face="Courier New"> …
ConsoleApplication1.Program.Main(String[] args) dans C:\...\Program.cs:ligne
12</FONT></DIV>
<DIV> </DIV>
<DIV>Hugo Wood</DIV></DIV></DIV></BODY></HTML>