[Kde-bindings] Qyoto on Windows

Dimitar Dobrev dpldobrev at yahoo.com
Thu Dec 1 07:55:35 UTC 2011


Not sure about QFileDialog, haven't used it yet. All widgets in Qt have a parent, so try passing one (say, your main application window) to the QFileDialog constructor.
Your Smoke_DIR seems correct so I don't know what is wrong there. Make sure you set SMOKE_BASE_LIBRARY to point to libsmokebase.dll.



________________________________
 From: Steven Boswell II <ulatekh at yahoo.com>
To: Dimitar Dobrev <dpldobrev at yahoo.com> 
Sent: Thursday, December 1, 2011 12:13 AM
Subject: Re: Qyoto on Windows
 

Sweet, that took care of the problem under Windows, and it works just fine under Linux!  (Plus, I learned something new about Qt. :-)  Thank you!

The next problem is that, under Windows, QFileDialog seems to freeze the entire application.  Specifically, I'm calling QFileDialog.GetExistingDirectory (this, "Select a directory", 0x25u).  Have you tried that yet?

I have successfully built smokegen, and finally figured out how to install it: cd to the smokegen build directory, and run "mingw32-make install".  That put it in "C:\Program Files (x86)\smokegenerator".  Now I'm trying to build smokeqt, but CMake keeps telling me "Could not find SMOKE".  I set Smoke_DIR to "C:\Program Files (x86)\smokegenerator\share\smoke\cmake", but that didn't help.  It also doesn't seem to be running the SmokeConfig.cmake in that directory; I modified all four "Could not find SMOKE" messages in there, and it's not showing any of the modified messages, so I think I'm missing a bigger point somewhere.  Can you steer me in the right direction?

Steven Boswell



________________________________
 From: Dimitar Dobrev <dpldobrev at yahoo.com>
To: Steven Boswell II <ulatekh at yahoo.com>; KDE bindings <kde-bindings at kde.org> 
Sent: Wednesday, November 30, 2011 2:10 PM
Subject: Re: Qyoto on Windows
 

I get exactly the same error, however Connect(cb, SIGNAL(string), this, SLOT(string)), where your slot method is marked with [Q_SLOT], works. You may check this example, just replace calls to SetWindowTitle(arg) with WindowTitle = arg. I have no idea why the other way does not work and it is a shame because it is more convenient. Mail me if you manage to fix it.



________________________________
 From: Steven Boswell II <ulatekh at yahoo.com>
To: Dimitar Dobrev <dpldobrev at yahoo.com> 
Sent: Wednesday, November 30, 2011 9:03 PM
Subject: Re: Qyoto on Windows
 

Thanks.  I'll grab assemblygen when I get home & work on getting all these projects to build.


I messed with my app under Qyoto/Windows today.  Almost everything seems to work; QSettings preserves my window geometry, and resizing works as expected.  But it seems to crash every time I hook up an action with "QObject.Connect(QObject,string,SlotFunc)".  The call to QObject.Connect() succeeds, but as soon as that event happens, I get a System.ArgumentException that says "Type must derive from Delegate.  Parameter name: t".  Are you seeing this problem in your own code?

If this is an easy fix on your part, I would really appreciate it...after all, I'm still working up to building these libraries, and am still a ways from being able to run DLLs in a debugger.

Steven Boswell



________________________________
 From: Dimitar Dobrev <dpldobrev at yahoo.com>
To: Steven Boswell II <ulatekh at yahoo.com>; KDE bindings <kde-bindings at kde.org> 
Sent: Wednesday, November 30, 2011 1:09 AM
Subject: Re: Qyoto on Windows
 

Here you can find 2 of the repositories you need: smokegen and smokeqt (the latter are the Smoke Qt bindings which produce the libsmokeqt*.dll-s). Here you can find assemblygen (check out the branch of "assemblies"), the tool that generates the managed assemblies (qyoto-*.dll) from the Smoke libraries.
Some more build instructions: that LIBRARY thing I described on the mailing list for smokegen must be done for all CMakeLists. Another thing about CMakeLists is that the dependent libs will look for lib*.so and thus fail. You must change that to lib*.dll. Of course, these cannot be sent as patches because they are Windows-specific so for now everyone who wants to build Qyoto has to fix them on his own.



________________________________
 From: Steven Boswell II <ulatekh at yahoo.com>
To: Dimitar Dobrev <dpldobrev at yahoo.com> 
Sent: Wednesday, November 30, 2011 3:43 AM
Subject: Re: Qyoto on Windows
 

I put mingw10.dll into my application folder and still no luck.  But I put C:\QtSDK\Desktop\Qt\4.7.4\mingw\bin into my path and my app finally runs!  So I can figure out what's left.  Thanks so much for your help!  I look forward to testing the heck out of the Windows port of Qyoto!

BTW, in the kdebindings mailing list, from 11/12 to around 11/19, you have some commits.  What were they to?  I was looking at the only kdebindings version-control databases I know of, e.g. https://projects.kde.org/projects/kde/kdebindings/smoke/smokegen/repository , and I don't see any new commits.  I wanted to get your latest changes so I could practice building them on my own.

Thanks again!  Let me know if there's anything I can do for you (aside from testing your stuff on my end).


Steven Boswell



________________________________
 From: Dimitar Dobrev <dpldobrev at yahoo.com>
To: Steven Boswell II <ulatekh at yahoo.com> 
Sent: Tuesday, November 29, 2011 2:48 PM
Subject: Re: Qyoto on Windows
 

I ran your exe and it runs (I get an error a bit later but not a DllNotFoundException). However, I have Qt in my path and thus I forgot you need C:\QtSDK\Desktop\Qt\4.7.4\mingw\bin\mingwm10.dll in your app folder as well. For more info see here.



________________________________
 From: Steven Boswell II <ulatekh at yahoo.com>
To: Dimitar Dobrev <dpldobrev at yahoo.com> 
Sent: Tuesday, November 29, 2011 11:09 PM
Subject: Re: Qyoto on Windows
 

I want to thank you once again for all the help you're giving me.  I wouldn't have gotten anywhere without your work on the Windows version of Qyoto.


Yes, I'm working on a Qt/C# project, but I wrote it under Linux.  So the smoke libraries were already installed, since the qyoto package depended on them.

One of my co-workers, miraculously, had previously downloaded the offline installer for QtSDK, so I got further along today.


I've copied all the DLLs you listed to my application directory, including the debug versions of the QtSDK libraries (i.e. QtCored4.dll and QtGuid4.dll), just to be safe.  But there's no change -- it still throws a DllNotFoundException for qyoto-qtcore-native.

My application only refers to the qyoto-qtcore and qyoto-qtgui assemblies, so I only copied the files related to those.  Here's my list:

libsmokebase.dll
libsmokeqtcore.dl
libsmokeqtgui.dll
QtCore4.dll
QtCored4.dll
QtGui4.dll
QtGuid4.dll
qyoto-qtcore.dll
qyoto-qtcore-native.dll
qyoto-qtgui.dll
qyoto-qtgui-native.dll

Does that look right to you?

If you're willing, I've attached the executable that I'm trying to run.  See if you get the
 DllNotFoundException.

Thanks for everything.  Getting Qyoto running on Windows will save a LOT of time and hassle.

Steven Boswell



________________________________
 From: Dimitar Dobrev <dpldobrev at yahoo.com>
To: Steven Boswell II <ulatekh at yahoo.com> 
Sent: Tuesday, November 29, 2011 1:07 PM
Subject: Re: Qyoto on Windows
 

Yes, the build instructions are for smokegen only. I have such for the whole Qyoto (some of them I already sent as patches) and I'll gather them and send them when I have some time.

The libsmoke*.dll assemblies depend on the corresponding Qt assemblies and it is normal for your program to fail without them. I thought you had them already because you said you were working on a project.
Anyway, you need the following in your application folder (top to bottom):
1. The Qyoto libs you use - qyoto-qtcore.dll, qyoto-qtgui.dll, etc. (from the /lib dir);
2. Their corresponding Qyoto native libs - qyoto-qtcore-native.dll, qyoto-qtgui-native.dll, etc. (from the /bin dir);
3. Their corresponding Smoke libs - libsmokeqtcore.dll, libsmokeqtgui.dll, etc. (from the /lib dir) + libsmokebase.dll;
4. Their correspondingQt libs (as you correctly guessed you get them from the Qt SDK (or from any other Qt Windows download from that matter)) - QtCore.dll, QtGui.dll, etc.



________________________________
 From: Steven Boswell II <ulatekh at yahoo.com>
To: Dimitar Dobrev <dpldobrev at yahoo.com> 
Sent: Tuesday, November 29, 2011 7:14 PM
Subject: Qyoto on Windows
 

I found the build instructions you posted for smokegen...is that what you mean?

Eventually I figured out that lib\qyoto*.dll were the C# assemblies, and that bin\qyoto-*-native.dll apparently also need to be in %PATH% somewhere.  But so far, every time I run my C# app (built with MonoDevelop), I get a DllNotFoundException for qyoto-qtcore-native.  My guess is that I need to install QtSDK -- some earlier instructions I found said to install KDE for Windows.  So I'll install QtSDK on my computer when I get home from work and try again.

Thanks for all your help!

Steven Boswell


________________________________
 From: Dimitar Dobrev <dpldobrev at yahoo.com>
To: Steven Boswell II <ulatekh at yahoo.com> 
Sent: Tuesday, November 29, 2011 2:16 AM
Subject: Re: [Kde-bindings] Qyoto and QTreeView/QAbstractItemModel: "C# instance has been wrongly GC'd for virtual call"
 

There you go. These are just the Windows binaries. I kept the folder structure if you want to set up a build system, otherwise just copy the libraries. They are 32-bit built against Qt 4.7.4 (the Qt libs are not in the package for they are too large and you should have them anyway).

I had a talk with the maintainer to officially upload the Windows binaries somewhere at the KDE bindings page but for now nothing has happened yet. So you can get them from here.

I'm a little busy so I'll send build instructions later. There are already some that I posted on this mailing list, they should be easy to find.



________________________________
 From: Steven Boswell II <ulatekh at yahoo.com>
To: Dimitar Dobrev <dpldobrev at yahoo.com> 
Sent: Monday, November 28, 2011 11:51 PM
Subject: Re: [Kde-bindings] Qyoto and QTreeView/QAbstractItemModel: "C# instance has been wrongly GC'd for virtual call"
 

That would be great!  Build instructions would be appreciated too!  The most current ones I could find dated back to 2008.

Thanks so much for your help!

Steven Boswell



________________________________
 From: Dimitar Dobrev <dpldobrev at yahoo.com>
To: Steven Boswell II <ulatekh at yahoo.com>; KDE bindings for other programming languages <kde-bindings at kde.org> 
Sent: Monday, November 28, 2011 12:12 PM
Subject: Re: [Kde-bindings] Qyoto and QTreeView/QAbstractItemModel: "C# instance has been wrongly GC'd for virtual call"
 

I am now porting a cross-platform project, on Windows as a start, and Qyoto works great. I can send you the binaries of you need them.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20111130/50d47c20/attachment-0001.html>


More information about the Kde-bindings mailing list