最近在做服务器端DLL,DLL中需调用GDI+进行绘图。
DLL在vs的调试启动、以及其他exe调用时,均可正常运行。
但发布到IIS、或者nodejs调用dll,时,就出现崩溃。
最后解决此问题,问题在于对GDI+要进行初始化。
当GDI+作为一个动态库时,要进行初始化。
static ULONG_PTR GdiToken;
static GdiplusStartupInput gdiplusstartupinput;
程序初始化时调用GdiplusStartup(&GdiToken,&gdiplusstartupinput,NULL);
程序退出时调用GdiplusShutdown(GdiToken);
初始化GDI+是必须的,而且应该放在全局中。
ULONG_PTR是个宏,#define ULONG_PTR ULONG
例如: