So-net無料ブログ作成
検索選択

忙しいぞ、GDI+ [仕事]

 今週も忙しいぞ。
 まず今日は、

・地点選択を完成させる。
・別物件リリース
・障害対応
・打合せおよび修正

 だ。うがー。
 というわけで、前半2点は午前中に終了。さ、お昼お昼。

CA3A0559.JPG

 ぎゃっはっは、エビチリ。


CA3A0560.JPG


 干し豆腐の野菜炒め。
 う~ん、これ、んまい。

 さて、午後はまずは障害対応。
 だはは。こんなん15秒じゃ。
 で、30秒で終り(笑)
 さて、打合せだ-。
 うーん。修正だー。
 あー。やり方変えなきゃゼンゼンだめね…
 うーん。SQL嫌い。
 あー。SQLやだー。
 でもしゃーないわ。なんとかやりました。わはは。

 さて、先にJPEG表示しなきゃならなくて、OleLoadPictureを使ったんだけど、こんどはPNGだよ。
 まあ、自分でやってもいいんだけどさ。時間がないから、GDI+を使っただよ。JPEGもこっちでやればよかった。

HBITMAP GetPng(LPCSTR fname, long &dx, long &dy)
{
 Gdiplus::GdiplusStartupInput gsi ;
 ULONG_PTR      gtok ;
 WCHAR       wfname[260] ;
 LONG       lRet ;
 Gdiplus::GpBitmap    *gBmp ;
 HBITMAP       hBmp ;
 BITMAP       bi ;

 MultiByteToWideChar(CP_ACP,
      MB_PRECOMPOSED,
      fname,
      -1,
      wfname,
      260) ;

 gsi.GdiplusVersion = 1 ;
 gsi.DebugEventCallback = 0 ;
 gsi.SuppressBackgroundThread = 0 ;
 gsi.SuppressExternalCodecs = 0 ;

 hBmp = 0 ;

 lRet = Gdiplus::GdiplusStartup(&gtok, &gsi, NULL) ;
 if (lRet == 0) {
  lRet = Gdiplus::DllExports::GdipCreateBitmapFromFile(wfname, &gBmp) ;
  if (lRet == 0) {
   lRet = Gdiplus::DllExports::GdipCreateHBITMAPFromBitmap(gBmp, &hBmp, 0) ;
   if (lRet) {
    hBmp = 0 ;
   }
   Gdiplus::DllExports::GdipDisposeImage(gBmp) ;
  }
 }

 Gdiplus::GdiplusShutdown(gtok) ;

 if (hBmp) {
  GetObject(hBmp, sizeof(bi), &bi) ;
  dx = bi.bmWidth ;
  dy = bi.bmHeight ;
 }

 return hBmp ;
}


 ま、こんな感じでおしまい。簡単じゃね~。
 しかし、これをC++Builder 5.0 から使えるようにするのだが、そこが手間取った。
 まず、gdiplis.hをインクルードするのに、

#define STRICT
#include <vcl.h>
#pragma hdrstop

#include <algorithm>
using std::min;
using std::max;

#pragma warn .8022
#include <gdiplus.h>
#pragma warn .nod

 これしないと。エラーでまくり。なんなんだよ。それでも他にいろいろエラーがでまくる。
 GdiPlusEnums.h。このやろー。

//enum EmfPlusRecordType;
#define GDIP_EMFPLUS_RECORD_BASE        0x00004000
#define GDIP_WMF_RECORD_BASE            0x00010000
//#define GDIP_WMF_RECORD_TO_EMFPLUS(n)   ((EmfPlusRecordType)((n) | GDIP_WMF_RECORD_BASE))
#define GDIP_WMF_RECORD_TO_EMFPLUS(n)   (((n) | GDIP_WMF_RECORD_BASE))
#define GDIP_EMFPLUS_RECORD_TO_WMF(n)   ((n) & (~GDIP_WMF_RECORD_BASE))
#define GDIP_IS_WMF_RECORDTYPE(n)       (((n) & GDIP_WMF_RECORD_BASE) != 0)

 赤をコメントアウト。緑を追加。
 GdiplusGraphics.h。ったくもー。

class Graphics : public GdiplusBase
{
public:
    friend class Region;
    friend class GraphicsPath;
    friend class Image;
    friend class Bitmap;
    friend class Metafile;
    friend class Font;
    friend class FontFamily;
    friend class FontCollection;
    friend class CachedBitmap;

    // Get a graphics context from an existing Win32 HDC or HWND
    static Graphics* FromHDC(IN HDC hdc)
    {
//        return new Graphics(hdc);
        return new Graphics(hdc, 0);
    }

 赤をコメントアウト。緑を追加。
 ったく。なんなんだよ。
 と文句たらたらだったけどやっと動いたのでヨシ。


タグ:仕事メモ
nice!(0)  コメント(2)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 2

Heel Grips For Loose Shoes

I like what you guys are usually up too. This kind of clever work and coverage! Keep up the superb works guys I’ve added you guys to my personal blogroll.
by Heel Grips For Loose Shoes (2013-04-28 04:51) 

mbt lami shoes

Estoy buscando algunos buenos blogs de negocios para agregar a mi lector de google que est�� siguiendo a la pena de forma permanente. ?Se puede hacer y las recomendaciones? Tengo ya de Seth Godin. Gracias. . Tambi��n ser��a de gran ayuda si me dijeras qu�� te gust�� estos blogs ..
mbt lami shoes http://www.maranjaklonghouselodge.com/#mbtlamishoes
by mbt lami shoes (2013-10-23 02:48) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。