- PR -

プリンタ詳細ダイアログで設定した情報をセーブ/ロードしたい

投稿者投稿内容
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2008-01-07 23:22
引用:

もう一度ファイルの先頭より(DEVMODE構造体のサイズ+プライベート領域のサイズ)のサイズでByte()に読み込んでいるつもりですが…。


ああ、確かにそうなっているように見えますね。大変、失礼いたしました。.NET のことは良く分かっていないもので流し読みしてしまいました。他には、br.ReadBytes で反復読み取りできるのか?など気になる部分もあるのですが、なにぶん .NET のことが分からないので、これ以上はお力になれそうもありません。すみません。
Azulean
大ベテラン
会議室デビュー日: 2008/01/04
投稿数: 123
お住まい・勤務地: 大阪府
投稿日時: 2008-01-08 07:43
引用:

今までのやりとりを踏まえて、保存/読み込みできるはずのロジックを組んでみたのですが、SetHdevmode()したあとメモリを破壊しているようでうまく先に進みません。


具体的にどの行で止まるのですか?
SetHdevmodeで止まるのか、GlobalUnlockなのか。
ハンドルされていない例外となるのであれば、Finallyブロックの中でしょうか?

試していない為、外しているかもしれませんが、気になる点として書いておきます。

・GlobalUnlockをSetHdevmodeよりも先にしなくて問題ないか?
・SetHdevmodeに与えるのはPtrDevModeではないか?
・解放責任は誰が持つべきか?(設定に成功した場合は解放する必要があるかないか)
水穂和明
会議室デビュー日: 2001/12/25
投稿数: 6
お住まい・勤務地: 鳥取県米子市
投稿日時: 2008-01-08 17:07
引用:

具体的にどの行で止まるのですか?
SetHdevmodeで止まるのか、GlobalUnlockなのか。
ハンドルされていない例外となるのであれば、Finallyブロックの中でしょうか?



dsp.DefaultPageSettings.SetHdevmode(globalDevOut)でStackOverflowExceptionが発生します。

引用:

・GlobalUnlockをSetHdevmodeよりも先にしなくて問題ないか?
・SetHdevmodeに与えるのはPtrDevModeではないか?


は、やってみたのですが、どこかで無限ループに入ってしまっているようで固まったままになります。
ちなみに、SetHdevmode後のPrinterSettingsのメンバをトレースなどで参照すると止まる(落ちる)ようです。

引用:

・解放責任は誰が持つべきか?(設定に成功した場合は解放する必要があるかないか)


ここら辺の知識がWindowsアプリケーションの場合、私の頭の中ではあいまいです。
UNIX系(C言語)のメモリ管理はよく分かっているのですが…。

申し訳ありませんが、引き続きアドバイスいただけましたら幸いです。
よろしくお願いします。
Azulean
大ベテラン
会議室デビュー日: 2008/01/04
投稿数: 123
お住まい・勤務地: 大阪府
投稿日時: 2008-01-09 01:28
引用:

引用:

・GlobalUnlockをSetHdevmodeよりも先にしなくて問題ないか?
・SetHdevmodeに与えるのはPtrDevModeではないか?


は、やってみたのですが、どこかで無限ループに入ってしまっているようで固まったままになります。
ちなみに、SetHdevmode後のPrinterSettingsのメンバをトレースなどで参照すると止まる(落ちる)ようです。


次の記事を参考にする限り、GlobalUnlockしてPtrDevModeを渡すのだとは思います。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=2377&KLOG=2

ところで、DEVMODE構造体はどのように定義されていますか?

スキルアップ/キャリアアップ(JOB@IT)