Страницы: 1
Написал функция для сохранения картинок. Функция использует класс 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
Спасибо, что навели на мысль!!!
Тема закрыта.
Отсутствует
Страницы: 1