[Kde-bindings] Qyoto: Linux build - fixed QX11EmbedWidget/QX11EmbedContainer
Dimitar Dobrev
dpldobrev at yahoo.com
Tue Jan 15 11:36:05 UTC 2013
Hi,
I think there is something wrong with your qyoto-qtcore-native. It is an old version and this is why it passes the no longer existing Qyoto namespace. Please try cleaning assemblygen (of which qyoto-qtcore-native is part) and rebuilding.
Dimitar
________________________________
From: Carlos Machado <metator.pt at gmail.com>
To: Dimitar Dobrev <dpldobrev at yahoo.com>
Sent: Tuesday, January 15, 2013 5:18 AM
Subject: Re: [Kde-bindings] Qyoto: Linux build - fixed QX11EmbedWidget/QX11EmbedContainer
Hi,
I've compiled smokegen, smokeqt and assemblygen successfully on Ubuntu 12.10 32 bits. Thanks for the work.
Now I'm getting runtime exceptions on very simple examples like this one:
using System;
using QtGui;
namespace qttest {
class Program {
[STAThread]
static int Main(String[] args) {
QApplication app = new QApplication(args);
QMainWindow win = new QMainWindow();
win.ShowEvent += (sender, e) => {
Console.WriteLine("Main Window showned.");
};
win.Resize(640, 480);
win.Show();
return QApplication.Exec();
}
}
}
It throws a NRE when calling win.Show() with the following message:
System.NullReferenceException: Object reference not set to an instance of an object
at QtCore.SmokeMarshallers.CreateInstance (System.String className, IntPtr smokeObjectPtr) [0x00000] in <filename unknown>:0
at QtCore.SmokeMarshallers.CreateInstance (System.String className, IntPtr smokeObjectPtr) [0x00000] in <filename unknown>:0
at (wrapper native-to-managed) QtCore.SmokeMarshallers:CreateInstance (intptr,intptr)
at (wrapper managed-to-native) QtCore.SmokeInvocation:CallSmokeMethod (intptr,int,intptr,intptr,int,intptr)
at QtCore.SmokeInvocation.Invoke (System.String mungedName, System.String signature, System.Type returnType, Boolean refArgs, System.Object[] args) [0x00000] in <filename unknown>:0
at QtGui.QWidget.Show () [0x00000] in <filename unknown>:0
at qttest.Program.Main (System.String[] args) [0x00042]
There's also another message printed to output:
CreateInstance() ** Missing class ** Qyoto+QEvent, qyoto-qtcore
I went through the SmokeMarshallers code but i couldn't figure out where the namespace Qyoto comes from...
Regards,
Mach
2013/1/14 Dimitar Dobrev <dpldobrev at yahoo.com>
>
> Hi all,
>
>
> With Steven Boswell's help, I've fixed the QX11EmbedWidget/QX11EmbedContainer problem when building Qyoto on Linux. Now the classes are no longer excluded and build with no errors.
> Steven, I've fixed this by checking for nested types when generating signals. I've taken a look at your patch and it seems OK. But there are many changes and I wanted to think on it a little longer, to see if it's possible to exclude a class at a single central place. About this other fix I've applied, I had to do it anyway because these two classes were only blacklisted because of it, and there may be other similar in future Qt versions.
>
>
> Regards,
> Dimitar Dobrev
>
>
>_______________________________________________
>Kde-bindings mailing list
>Kde-bindings at kde.org
>https://mail.kde.org/mailman/listinfo/kde-bindings
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20130115/cbae0791/attachment-0001.html>
More information about the Kde-bindings
mailing list