Написал функция для сохранения картинок. Функция использует класс gfxImageSurface. Как я понял методы для работоспособности gfxImageSurface необходима xul.dll. Все хорошо если dll xulrunner лежат вместе с exe файлом моей программы, но как сделать чтобы все dll xulrunner лежали в папке, например mozilla, а мой exe в другой? Вот функция: static sresult _SaveImage (nsIDOMElement* elem, const wxString& path) { nsresult rv; nsCOMPtr<nsIImageLoadingContent> imageContent = do_QueryInterface(elem, &rv); NS_ENSURE_TRUE(imageContent, rv); nsCOMPtr<imgIRequest> request; rv = imageContent->GetRequest(nsIImageLoadingContent::CURRENT_REQUEST, getter_AddRefs(request)); NS_ENSURE_TRUE(request, rv); nsCOMPtr<imgIContainer> container; rv = request->GetImage(getter_AddRefs(container)); NS_ENSURE_TRUE(container, rv); nsCOMPtr<gfxImageSurface> image; rv = container->CopyFrame(imgIContainer::FRAME_FIRST, imgIContainer::FLAG_SYNC_DECODE, getter_AddRefs(image)); NS_ENSURE_TRUE(image, rv); nsCOMPtr<imgIEncoder> encoder = do_CreateInstance("@mozilla.org/image/encoder;2?type=image/png", &rv); NS_ENSURE_SUCCESS(rv, rv); encoder->InitFromData(image->Data(), image->Stride() * image->Height(), image->Width(), image->Height(), image->Stride(), imgIEncoder::INPUT_FORMAT_HOSTARGB, EmptyString()); ................................. ............................ } Если все dll xulrunner лежат в другой папке, то при загрузки программы у меня выдает ошибку "Запуск программы невозможен, так как на компьютере отсутствует xul.dll". Есть у кого-то идеи? заранее благодарен. |
Спасибо, было почти то))) Но проблему решил. Использую VS2010 и xulrunner 10.2. В опциях проекта VS2010 есть опция Delay Loaded DLLs, туда вписал xul.dll и заработало) Кому интересно вот описание - http://msdn.microsoft.com/en-us/library/151kt790.aspx Спасибо, что навели на мысль!!! Тема закрыта. |