2010年10月26日

邪惡的 windows headers

想起來前陣子被婊的事情....

#include "stdafx.h"
#include <gdiplus.h>

#pragma comment(lib, "Gdiplus.lib")

class GdiPlusInit
{
public: 
    GdiPlusInit()
    {
        static GdiPlusInit_imp s_imp;
    }

private:
    class GdiPlusInit_imp
    {
    public: 
        GdiPlusInit_imp()
        {
            Gdiplus::GdiplusStartupInput startup;
            Gdiplus::GdiplusStartup(&token_, &startup, NULL );
        }

        ~GdiPlusInit_imp()
        {
            Gdiplus::GdiplusShutdown(token_);
        }

        ULONG_PTR token_;
    };
};

static GdiPlusInit s_gdiPlusInitObj;
    
這是個自動處理 GDI+ initialize/uninitialize 的 static object
很簡單的一小段 code,可是不能編譯哈哈哈哈哈

error 在第 11 行
compiler 給我吐一段完全不相干的 error message....
想來想去開始檢查 symbol
果然 s_imp 被 windows headers 給 define 掉了,混帳東西 -_-

沒有留言:

張貼留言