以下のコードでnewでメモリ確保すると大丈夫なのにスタックにメモリ確保するとエラーになります。
どこがまずいのでしょうか?なんとなくスタックの概念を根本的に間違っているような気がします。
//----大丈夫----------------------------
#include<windows.h>
#include<gdiplus.h>
#pragma comment(lib,"Gdiplus.lib")
#include<cstdio>
void main()
{
Gdiplus::GdiplusStartupInput gdiplusStartupInput1;
ULONG_PTR gdiToken;
Gdiplus::GdiplusStartup(&gdiToken,&gdiplusStartupInput1,NULL);
Gdiplus::Bitmap*pBitmap1=new Gdiplus::Bitmap(TEXT("C:\\WINDOWS\\winnt.bmp"));
printf("%d\n",pBitmap1->GetWidth());
delete pBitmap1;
Gdiplus::GdiplusShutdown(gdiToken);
}
//----エラー----------------------------
#include<windows.h>
#include<gdiplus.h>
#pragma comment(lib,"Gdiplus.lib")
#include<cstdio>
void main()
{
Gdiplus::GdiplusStartupInput gdiplusStartupInput1;
ULONG_PTR gdiToken;
Gdiplus::GdiplusStartup(&gdiToken,&gdiplusStartupInput1,NULL);
Gdiplus::Bitmap bitmap1(TEXT("C:\\WINDOWS\\winnt.bmp"));
printf("%d\n",bitmap1.GetWidth());
Gdiplus::GdiplusShutdown(gdiToken);
}