投稿時間:2003/04/23(Wed) 14:40 投稿者名:JJ
Eメール:
URL :
タイトル:ターミナルサーバを介したCreateCompatibleBitmap
はじめまして、JJと言います。
今、ターミナルサーバを使用したプログラムを作成しています。 VBで作成した画像をビットマップにしてエクセルに出力するプログラムなのですが、CreateCompatibleBitmapを使用して領域を確保しようとすると、エラーになってしまいます。GetLastErrorで取得したエラー内容は以下のとおりです。
エラー番号:8 メッセージ:このコマンドを実行するのに十分な記憶域がありません
この現象は、ターミナルサーバを使用した場合だけおきます。
1.ターミナルサーバを使用していないマシン 問題なく動作します
2.ターミナルサーバをインストールしたマシン 上記のエラーが必ず発生します
3.ターミナルサーバに対してクライアントで接続したとき エラーが発生します ただし、クライアントを起動させるときに800x600の解像度で実行すると、問題なく 動作します (ターゲットマシンは1024x768です)
また、2,3の場合でも、CreateCompatibleBitmapのパラメータの横幅、縦幅を小さくすれば、動作します。 しかし、2倍のメモリを積んだマシンをサーバにしても、エラーは発生しました。
以下がプログラムです。
lngWidth = ScaleX(CNST_LAYOUT_WIDTH, vbTwips, vbPixels) lngHeight = ScaleY(CNST_LAYOUT_HEIGHT, vbTwips, vbPixels) lngMemDC = CreateCompatibleDC(GetDC(0))
If lngMemDC = 0 Then MsgBox PRINT_MSG_ERR_CREATEDC Exit Function End If lngNewBitmap = CreateCompatibleBitmap(GetDC(0), lngWidth, lngHeight) 'ここでエラーが発生します
If lngNewBitmap = 0 Then Call DeleteObject(lngMemDC) MsgBox PRINT_MSG_ERR_CREATEBITMAP Exit Function End If lngOldBitmap = SelectObject(lngMemDC, lngNewBitmap)
どなたか、よいアドバイスはございませんでしょうか?
|