Zmienna w miejscu "plik.png"

0

Jak zrobić żeby zamiast plik.png była zmienna

file="plik.png";
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
CLSID   encoderClsid;
Status  stat;
Image*   image = new Image(L"plik.png");
GetEncoderClsid(L"image/jpeg", &encoderClsid);
stat = image->Save(L"plik.jpg", &encoderClsid, NULL);
delete image;
GdiplusShutdown(gdiplusToken);
 
0

może podasz nazwę biblioteki?

0

Tu masz cały kod

 
#include <windows.h>
#include <gdiplus.h>

using namespace Gdiplus;

int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
{
	UINT  num = 0;
	UINT  size = 0;

	ImageCodecInfo* pImageCodecInfo = NULL;

	GetImageEncodersSize(&num, &size);
	if(size == 0)
		return -1;

	pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
	if(pImageCodecInfo == NULL)
		return -1; 

	GetImageEncoders(num, size, pImageCodecInfo);

	for(UINT j = 0; j < num; ++j)
	{
		if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
		{
			*pClsid = pImageCodecInfo[j].Clsid;
			free(pImageCodecInfo);
			return j;
		}
	}

	free(pImageCodecInfo);
	return -1;
}

int main()
{
	GdiplusStartupInput gdiplusStartupInput;
	ULONG_PTR gdiplusToken;
	GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
	CLSID   encoderClsid;
	Status  stat;
	Image*   image = new Image(L"plik.png");
	GetEncoderClsid(L"image/jpeg", &encoderClsid);
	stat = image->Save(L"plik.jpg", &encoderClsid, NULL);
	delete image;
	GdiplusShutdown(gdiplusToken);
}
2

Zapisz po prostu do stringa.
std::wstring file_name = L"plik.png"

0

Zrobiłem tak jak napisałeś i wywala mi błąd kompilacji w linijce

Image*   image = new Image(file);

Błąd kompilacji: http://wklej.to/gaVsj

0

Byś chociaż udał, że spojrzałeś w doku...
https://msdn.microsoft.com/en-us/library/windows/desktop/ms535411%28v=vs.85%29.aspx
Argument jest typu WCHAR*

1
const wchar_t *plik = L"plik.png";

a najlepiej operuj na wstring:

wstring plik = L"plik.png";
Image*   image = new Image(plik.c_str());
0

Dziękuję za pomoc wszystkim :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1