Страницы: 1
Здравствуйте.
Хочу написать кросплатформенное математическое приложение на Qt. Результат работы программы - MathML. Т.к. webkit (имеющийся в Qt) не поддерживает отображение mathml хочу использовать gecko.
Скачал с http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.2/source/
xulrunner-1.9.2.en-US.win32.sdk.zip
xulrunner-1.9.2.source.tar.bz2
И не могу разобраться что использовать. Нужно ли мне из исходников собирать SDK под mingw или сойдет уже скомпилированый? Поделитесь, пожалуйста, ссылкой на документацию с описанием интерфейсов - на сайте мозилы я просто заблудился и не могу найти нужной документации.
Отсутствует
Написал программу:
#include "test.h" #include <QApplication> # ifndef XP_WIN # define XP_WIN # endif #include "nsComponentManagerUtils.h" #include "nsEmbedCID.h" #include "nsIBaseWindow.h" #include "nsIWeakReference.h" #include "nsIWebBrowser.h" #include "nsIWebNavigation.h" #include "nsEmbedAPI.h" #include "nsEmbedString.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); test w; w.show(); nsCOMPtr<nsILocalFile> mreAppDir; nsresult rv; char* path; path = "C:\\xulrunner-sdk-1.9.2\\bin"; rv = NS_NewNativeLocalFile(nsEmbedCString(path), TRUE, getter_AddRefs(mreAppDir)); if(NS_FAILED(rv)) return 1; rv = NS_InitEmbedding(mreAppDir, nsnull); if(NS_FAILED(rv)) return 1; // ----- 2 nsCOMPtr<nsIWebBrowser> mWebBrowser = do_CreateInstance(NS_WEBBROWSER_CONTRACTID, &rv); if(NS_FAILED(rv)) return 1; // ---- 3 nsCOMPtr<nsIBaseWindow> baseWindow(do_QueryInterface(mWebBrowser, &rv)); if(NS_FAILED(rv)) return 1; RECT rcLocation; ::GetClientRect(w.winId(), &rcLocation); rv = baseWindow->InitWindow(w.winId(), nsnull, 0, 0, rcLocation.right - rcLocation.left, rcLocation.bottom - rcLocation.top); if(NS_FAILED(rv)) return 1; rv = baseWindow->Create(); if(NS_FAILED(rv)) return 1; nsCOMPtr<nsIWebNavigation> webNavigation(do_QueryInterface(mWebBrowser, &rv)); if(NS_FAILED(rv)) return 1; rv = webNavigation->LoadURI(NS_LITERAL_STRING("file://C:/Temp/browser.xml").get(), nsIWebNavigation::LOAD_FLAGS_NONE, nsnull, nsnull, nsnull); if(NS_FAILED(rv)) return 1; rv = baseWindow->SetVisibility(PR_TRUE); if(NS_FAILED(rv)) return 1; return a.exec(); }
Запускается. Показывает страничку. Но при попытке прокрутить страничку вниз, программа вылетает. Ни как не могу разобраться в чем дело.
Можете помочь?
Отсутствует
Страницы: 1