Я все еще продолжаю изучать WinAPI и его различные библиотеки, и теперь я пытаюсь понять GDI +. В качестве простого теста я пытаюсь загрузить изображение из файла и нарисовать его на экране.
Вот код, который я использую (объяснение ниже):
int x=0, y=0;
Image* sprite=Image::FromFile((WCHAR*)"MyImage.png");
Graphics g(dc);
std::cout<<"(x, y)=("<<x<<", "<<y<<")"<<std::endl; // Debug output
std::cout<<"(w, h)=("<<sprite->GetWidth()<<", "<<sprite->GetHeight()<<")"<<std::endl; // Debug output
g.DrawImage(sprite, x, y, (int)sprite->GetWidth(), (int)sprite->GetHeight());
Итак, dc - это HDC, к которому я рисую, полученный с помощью BeginPaint (). Это определенно нормально, потому что я могу нарисовать эллипс с помощью Ellipse (), используя этот HDC, и он отлично отображается. Я вывел значение переменной спрайта, и это ненулевой указатель, как и должно быть.
Странно то, что в выходных данных выше указано, что ширина и высота изображения равны 0. Что может вызвать это? Я подумал, что, возможно, изображение загружается неправильно, поэтому я попытался использовать как абсолютный, так и относительный путь для аргумента FromFile (), и ничего не изменилось. Я также пробовал переключиться с PNG на BMP, но и там никаких изменений.
Что происходит?
РЕДАКТИРОВАТЬ Только что протестировано, и если я загружу изображение как Image * sprite = new Image (L "Path_To_Image"); работает нормально. Почему не работает с FromFile?