1 名前:デフォルトの名無しさん [2008/01/21(月) 19:35:37 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 c++厨の嵐はスルー汁。 前スレ C#, C♯, C#相談室 Part44 pc11.2ch.net/test/read.cgi/tech/1194956418/ その他テンプレ>>2-5 くらい
149 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:45:35 ] C#ってどんな業界で使われてるの?
150 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:11:20 ] >>149 業務用で多いのは ASP.NET かな。 企業のウェブポータルなんかでは割と使われてる。 個人レベルのフリーウェアは最近結構増えてきた気がする。
151 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:26:44 ] >>150 サンクス
152 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:36:40 ] 個人レベルでちょっとなんか作るならC#でFAだな。 楽過ぎる。 でもグローバルフックに制限があったりとか WPF使ったらactivexがラップしないと使えないとか 細かい問題が多くて開発時間に影響するんだよな・・・。 それでも早いけど。
153 名前:デフォルトの名無しさん [2008/02/05(火) 22:38:25 ] >>149 人工知能
154 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:05:08 ] managedだけで済む処理しか使わないならすごく楽に作れるな
155 名前:デフォルトの名無しさん [2008/02/07(木) 10:16:54 ] (COM登録が必要な)C#で作ったアセンブリをインストーラーで配布しようとしているのですが その際プライマリ出力のRegisterプロパティをvsdrpCOMに設定しても インストール中にComRegisterFunctionAttributeのRegister、Unregisterメソッドは呼ばれないのでしょうか? (試した限りでは呼ばれませんでした) 何かプロパティを変える等で呼ばれるようにする方法はありますでしょうか?
156 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:41:01 ] SHFileOperation使えばいいんじゃね?
157 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:41:35 ] 誤爆スマソ
158 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:16:29 ] C# 2008です n < Int32.MinValue (nは0〜200くらい) が実行された際 Debugでビルドしたときは何もなかったのに Releaseでビルドしたらオーバーフローが出ました n < Int16.MinValueにしたら平気でした。 n > Int32.MinValue では平気でした。 DebugとReleaseで演算方法が違うってことでしょうか? そもそも比較演算でオーバーフロー出すようでは欠陥だと思うのですが これじゃDebugでテストするのが怖い
159 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:29:43 ] nの型は何だよ。
160 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:34:11 ] また始まった コードそのものをここに貼れよ。 それだけでオーバーフロー/フレームワークに欠陥なんて言われても。
161 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:38:06 ] >>158 処理系が欠陥だと言い切るような自信がどこから湧くのか理解できんが、 生成されてるILすら比較してみていないような感じだな。
162 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:47:51 ] まったくだ
163 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:50:27 ] ポカやってるのは>>158 でFAなのはコード見なくてもわかるけど とりあえずDebugとReleaseで プロジェクトのプロパティ→ビルド→詳細設定→演算のオーバーフロー/アンダーフローのチェック のチェックボックスの状態がちがうんじゃね?
164 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:14:46 ] Debugでは出ない例外がReleaseで出たのは経験あるな よく覚えてないけどList<T>.Sortか何かで渡した自分のIComparer<T>の実装が間違ってたのが原因だった
165 名前:デフォルトの名無しさん [2008/02/09(土) 09:47:27 ] 長いコード貼るなら pastebin.windy.cx/ pastebin.com/ こういうところだと色分けとかもできる
166 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:17:22 ] 怠け者で探しきれてなくてすみません。 MonthCalenderで、指定日をハイライトするメソッドをご教授ください。
167 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:22:48 ] SetDateか。自己解決下っぽい。ありがとうございました。
168 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:25:49 ] しかも 初心者板と勘違いした。 重ね重ね申し訳ない。orz
169 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:34:42 ] ほ、ほーっ、ホアアーッ!! ホアーッ!!
170 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:15:54 ] vjs.dllだとファイル数多いと例外なげたりとバグってたりするんですけど C#でお手軽にZIP作る方法ないですか?
171 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 02:36:47 ] SharpZipLibとか
172 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 02:39:18 ] シェルにやらせればいいんじゃね
173 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:35:13 ] zip.exe叩いた方が楽でね?
174 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 07:53:49 ] zipfldr.dll …ってシェルと同じかも
175 名前:デフォルトの名無しさん [2008/02/12(火) 08:45:53 ] Processでstartinfoに process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; 指定して、zip.exe起動すれば、dos窓でないから 一番楽だと思うが。
176 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:38:56 ] 統合アーカイバプロジェクトに登録されてるのはだめなの? そのうちファイラ作ろうと思ってるんだけど。 ttp://www.madobe.net/archiver/dev/main.html#csharp
177 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:38:27 ] もしかして、.NET Framework 2.0からZIPを操作するクラスが入ったのを知らない人多い?
178 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:46:38 ] うん
179 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:49:52 ] GZipは扱えるがZipファイルは扱えねぇなあ。 まあヘッダ処理だけ書けば大体対応できるけどね。
180 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:49:59 ] それGZIPだし ZIPじゃないし
181 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:59:17 ] 読み取り専用のDictionaryはないの?
182 名前:デフォルトの名無しさん [2008/02/12(火) 20:12:09 ] ListViewでItemを追加してEndUpDateすると、全部のItemが再描画 されてしまいます。そこでそのちらつきを出さない方法についてこちら でおききしていました。>pc11.2ch.net/test/read.cgi/tech/1197507828/859 その中のソースがC#なのでC#スレでお訊きします。よろしくです。 CodeProject Flicker-free ListView in .NET and XP. Free source code and programming help www.codeproject.com/KB/list/listviewxp.aspx にあるサンプルを試してみたのですが、DEMO版がうまくいくのにソース版 ですよ対策なしと同じでした。 ListViewのDoubleBufferingはちらつき防止に効果あるでしょうか? またowner draw にした場合は自分でItemを描画する必要があるのでしょうか。 よろしくお願いします。
183 名前:182 [2008/02/12(火) 20:18:38 ] >>182 訂正>ソース版ですよ対策なしと同じ -> ソース版ですと対策なしと同じ 該当のサイトでは public void SetExStyles() { LVS_EX styles = (LVS_EX)SendMessage(this.Handle, (int) LVM.LVM_GETEXTENDEDLISTVIEWSTYLE, 0,0); styles |= LVS_EX.LVS_EX_DOUBLEBUFFER | LVS_EX.LVS_EX_BORDERSELECT; SendMessage(this.Handle, (int) LVM.LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (int) styles); } のようなコードがありました。これはDoubleBufferを使っているようなのですが、 owner draw はしてないようでした。一方、このサイトへのコメントレスとして ついていたものでは、owner draw にしておいて this.SetStyle(ControlStyles.OptimisedDoubleBuffer, True); とするだけでちらつきはなくなるようなことが書かれていましたが、これは 自分で描画してやらないといけないようでその場合どのように描画すれば よいのかわかりませんでした。自分で描画しないでも可能なような意味にも 取れてよくわからないのでした・・・ すみませんが、何卒よろしくお願いします。
184 名前:デフォルトの名無しさん [2008/02/13(水) 00:08:14 ] すみません、よろしければ pc11.2ch.net/test/read.cgi/tech/1200911737/182-183 について教えてください。何卒よろしくお願いします。
185 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:10:26 ] (>>184 は pc11.2ch.net/test/read.cgi/tech/1162467959/ への出張の間違いでした。すみません。)
186 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:46:50 ] zipの質問したものです みなさん、ありがとうございました 統合アーカイバプロジェクト(7-zip32.dll) undll.exe System.Process でやってみることにしました やってみると進行度合をウィンドウで表示してくれてちょっと鬱ですがとりあえず動いています (zip32.dllは長い名前に対応してないとか?はっきりしなかったので)
187 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:10:36 ] >>176 統合アーカイバプロジェクトのzipは処理速度遅いよ
188 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:14:46 ] >>187 代替案しめさないと意味のないコメント
189 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:25:47 ] zipってオープンソースじゃなかったっけ
190 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:29:55 ] 統合アーカイバプロジェクトなんつってる割には インターフェースが統一されてなくて使いにくいんだよな
191 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:31:45 ] 素人だからな。
192 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:58:33 ] C++/CLIでうまいことやってくれないもんかな
193 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:46:20 ] 公開された.NET Frameworkのソースコード見てたらInt32なんかもC#で実装されてるけど MSはなんか特殊なコンパイラ使ってるの?
194 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:30:56 ] VC#には、mscorlib.dllを参照させない/nostlibというオプションがある。 msdn2.microsoft.com/ja-jp/library/fa13yay7 (VS.80).aspx
195 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 01:46:17 ] >>188 代替案って・・^^; SharpZipLibに比べると3倍ぐらい遅いって、過去にそんな話出てたと思うが。
196 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:01:46 ] >>195 そんな話見たことねーよ どんな妄想だよ 遅いというからにはしっかり計って代替案示せ糞野郎
197 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:03:55 ] 統合アーカイバプロジェクトのzip 30秒 SharpZipLib 10秒
198 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:07:16 ] ↑なにこれ 人馬鹿にしてるの?
199 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:09:38 ] そこまで自分で性能気にするなら自分で測ればいいだろカスが
200 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:17:30 ] 代替案出せとか2chに何求めてるんだよw
201 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:26:43 ] なんか意味を取り違えてないか? 俺は196じゃないけど、196の言いたいことは「遅い」というのは 比較の対象があってこそ言えることで・・・ まあこれだけ補助線を引けば読解力ない君でもさすがにわかるだろ
202 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:40:13 ] 自演乙
203 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:52:19 ] 自演認定乙
204 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:06:24 ] 図星か
205 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:11:21 ] (・∀・)クスクス
206 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:14:24 ] 本当にこのスレにいるやつは、読解力ないのな アホばっか
207 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:16:58 ] そうだね
208 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:21:11 ] 今日は凄いくだらない事にメチャクチャ腹が立ったので、 懺悔の心でココに書くよ。 "C# bmp LockBits "でグーグル検索するとLockBits()メソッドの1つめの引数rectに Rectangle rect = new Rectangle(0,0,bmp.Width,bmp.Height); を指定するブログやら、Tipsサイトが大量に出てくるよね。 初心者向けとか言って、ご丁寧に赤と緑を入れ替えた画像とか貼ったりしてさー。 LockBits()はRectangle型のxとyしか見ない、あからさまなバグ入り関数なんだよね。 あそこは new Rectangle(0,0,1,1)で十分。 っていうか、大きな画像の一部のIntPtrを取り出したいときは、また別途Bitmapインスタンスが必要なぐらい使えない関数ww。 そっちの方がTipsとして必要だろうがwww。 10も20も「自称」プログラマのブログがあって、MSが作ったバグには一つも触れ無いんだよwwww。 おまえらは、MSの糞が食卓に並んでても気にならない本物のブタ共だよwww。 自分のブログで晒し上げにしようかと思っちゃったよww。
209 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:34:43 ] まあ208が「懺悔」の意味を勘違いしていることはよくわかった。
210 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:42:35 ] 今日は凄いくだらない事にメチャクチャ腹が立ったのでやつあたりしている。 が正しいな。
211 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:48:43 ] 「これはひどい」 「突っ込み所満載」
212 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:56:13 ] >>208 普通にRectangleで指定した範囲だけロックされるぞ (0,0,1,1)の範囲を指定したのにその外を触ろうとしたらAccessViolationExceptionが出る
213 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 20:05:04 ] 八つ当たりする先に困ってココに書いてるんだけどね。 >208 釣れた!! ソースはってみろよ。
214 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 20:05:32 ] >212だ 自分が釣られてどうする。
215 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 20:25:23 ] おら 奇跡は起きたか豚! tmp.Save(@"c:\tmpA.Png", ImageFormat.Png); //tmpがBitmap型な。 BitmapData bmpData = tmp.LockBits(new Rectangle(0,0,1,1), ImageLockMode.ReadOnly, tmp.PixelFormat); int bytes = (tmp.Width) * (tmp.Height) * 4; byte[] rgbValues = new byte[bytes]; IntPtr ptr = bmpData.Scan0; int a = bmpData.Height; int b = bmpData.Width; Console.WriteLine(a.ToString()+"+"+b.ToString()); //1+1 Marshal.Copy(ptr, rgbValues, 0, bytes); for (int d = 0; d < bytes; d++) { rgbValues[d] = 0xff; } Marshal.Copy(rgbValues, 0, ptr, bytes); tmp.UnlockBits(bmpData); tmp.Save(@"c:\tmpB.Png", ImageFormat.Png);
216 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:14:12 ] むしろブログでやってくれたほうが愉快だったのに、と思ってしまう。
217 名前:208,213,215 mailto:sage [2008/02/14(木) 21:15:04 ] おまえら反応無いなと思ったら。 >208>213>215 は全部俺>208だ。 ttp://hey.chu.jp/up/source3/No_13803.zip 今日は気分が良いからアプロダにサンプルまで置いてしまうぞ。 最後に俺のTipsを付けておく。 bmpData = tmp.LockBits(new Rectangle(0, 0, 1, 1), ImageLockMode.ReadOnly, tmp.PixelFormat); ptr = bmpData.Scan0; Marshal.Copy(ptr, rgbValues, 0, bytes); Rectangle rect = new Rectangle(64,64,256,128);//目的範囲をrectとすると。 for (int i= rect.X;i<rect.X + rect.Width;i++) for (int j = rect.Y; j<rect.Y+ rect.Height;j++) { int d = j*tmp.Width+i; swap = rgbValues[d * 4 + 1]; rgbValues[d * 4 + 1] = rgbValues[d * 4 + 2]; rgbValues[d * 4 + 2] = swap; }
218 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:16:29 ] >216 っていうか、 MSのフォーラムに行け。
219 名前:208 mailto:sage [2008/02/14(木) 21:19:43 ] >218も俺。 って。 >216はVSインストールした事も無いのに書き込んで居るんだね。
220 名前:208 mailto:sage [2008/02/14(木) 21:48:05 ] どうしたのですか? ゲイツのうんこ大好きなスカトロ豚さん? 31行目か60行目を Marshal.Copy(ptr, rgbValues, 0, bytes+1); // +1(・∀・) イイ って変更すると、多分お探しのエラーコードがでまちゅよ。
221 名前:216 mailto:sage [2008/02/14(木) 21:57:35 ] 215で例外になるじゃんと思いつつも、217やったらたしかに動くね。 違いと言えば、215のコードを動かしたときは tmpのインスタンスを作るときにファイルから読み込むBitmapのコンストラクタを使ったということくらい。 あと、217でtmpの中身を作るときのPixelFormatをFormat16bppRgb565にしつつ、 LockBitsに渡すPixelFormatをFormat32bppArgbにしても、探してた例外になったよ。
222 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:57:44 ] えっと・・・何?こいつ
223 名前:208 mailto:sage [2008/02/14(木) 22:02:30 ] >216 あんまり頑張るなよ。 自分でも苦しい言い訳だと思わない? >int bytes = (tmp.Width) * (tmp.Height) * 4; の"4"の意味が解らないなんて無理があるだろ。 けど、とりあえず反応してくれて、 あ り が と 。 ちなみに実行した環境とかも教えてくれちゃうと嬉しいな。
224 名前:208 mailto:sage [2008/02/14(木) 22:05:12 ] >222 良いTipsを思いついたからブログに書こうと思ったら、 世間の奴らのブタ過ぎに書くに書けなくなった。
225 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:06:44 ] >>223 いやそういうことではなさそう PixelFormat.Format32bppArgbで作ってPixelFormat32bppRgbでロックしても例外出る ビットマップのPixelFormatと違うフォーマットでロックしたらRectangleの中だけロックされるみたいだ
226 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:19:43 ] >225 そうだろうな。 そして人は Format32bppArgbなら、Format32bppArgbでLockBitする。 Format32bppPArgbなら、Format32bppPArgbでLockBitする。 Format32bppRgbなら、Format32bppRgbでLockBitする。 そうでない時エラーになるのは人として当然。 そして >225はnew Rectangle(0, 0, tmp.Width, tmp.Height)の時どう動いて欲しいのかな? >ビットマップのPixelFormatと違うフォーマットでロックしたらRectangleの中だけロックされるみたいだ (・∀・)ニヤ ぶっちゃけ書くけど、2008まだインストールして居ないんだ。俺。
227 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:33:39 ] >>223 ペイントで24ビットビットマップとして保存して、 Bitmap tmp = new Bitmap(@"h:\P1000220.bmp");のようにした。 .NET Framework 1.1 SP1と2.0 SP1 (3.5)、 VC#コンパイラ.NET 2003, 2005, 2008の3つで試した。 32ビットビットマップでやるとtmp.PixelFormatがFormat32bppArgbになってうまくいくね。 (217からGraphics作ってる部分だけ抜き出して、tmp.Saveで作った)
228 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:35:19 ] >>226 違うフォーマットでロックすることは可能 これでお前の期待する結果になる こういう仕様のようにも見える Rectangle rect = new Rectangle(0, 0, 10, 10); BitmapData bmpdata = tmp.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb); for (int i = 0; i < rect.Width * rect.Height; i++) ((uint*)(void*)bmpdata.Scan0)[i] = 0xfffffff; tmp.UnlockBits(bmpdata);
229 名前:208 mailto:sage [2008/02/14(木) 22:43:13 ] >227 良く嘘をつく奴だな程度に思っていたけど、只の低脳なのか? Bitmap tmp = new Bitmap(@"h:\P1000220.bmp"); //この次の行に書け。 Console.WriteLine("tmp.PixelFormat =" + tmp.PixelFormat.ToString()); //何が見える? ペイントで24ビットビットマップとして保存して居る奴に必要なコード変更はこういう事だ。 //int bytes = (tmp.Width) * (tmp.Height) * 4; int bytes = (tmp.Width) * (tmp.Height) * 3;
230 名前:228 mailto:sage [2008/02/14(木) 22:45:30 ] 補足 tmpのPixelFormatはFormat32bppArgb
231 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:02:29 ] >>229 嘘付きと低脳だったら嘘付きがいいな。 すまん、LockBitsするときにはPixelFormat.Format32bppArgbを 指定するよう書き換えていたことをさっきからずっと忘れていた。
232 名前:208 mailto:sage [2008/02/14(木) 23:03:53 ] >228 面白い。 >225は間違って無かったんだな。 Bitmap tmp = new Bitmap(412, 256, PixelFormat.Format32bppRgb); で作って。 BitmapData bmpdata = tmp.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb);//つまり同じ。 for (int i = 0; i < rect.Width * rect.Height; i++) ((uint*)(void*)bmpdata.Scan0)[i] = 0xfffffff; tmp.UnlockBits(bmpdata); した場合は元のもくあみに戻るのな。 念のため for (int i = 0; i < (rect.Width * rect.Height)+200; i++) ((uint*)(void*)bmpdata.Scan0)[i] = 0xfffffff; として見たが、むなしくなった。 結果は白線がのびる。 exception無し。 こちらの環境は 2005 .NET 2.0 オンリ 夜も更けて来たので哲学入ります。 俺がやってることは、世間の奴らが見向きもしないで触らずにいた汚い糞を、 わざわざどけてやってるだけなんだよな。 結果、一番得得してるのは、糞を垂れ流してる張本人って事ないか?
233 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:05:02 ] >231 わるかった。 君が板から>228なんて案も出たんだ。
234 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:32:16 ] たぶんLockBitsは指定されたPixelFormatと内部の形式が同じだったら、 コピーしないで中のメモリを直接ロックかける、 違ったら新しくメモリを用意し、そこに指定された領域を指定された形式に変換したものを 書き込んでいるという風になっている予感。 ソース見たら一発でわかるだろうな、誰かExpressではないVS 2008持っている奴いないのか? デバッグ時は厳密にチェックするルーチンを使用し、 リリースでは速度重視って切替ができたら今より良かったと思う。
235 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:34:46 ] NetMassDownloader使えばVS持ってなくてもソース落とせるよ ただ,ネイティブGDI+の関数を呼んでるだけという罠
236 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:59:50 ] >235 OSの環境に依存か。 unsafeかつ、フォーマットの変更が有って初めてLockBit()は仕様通り動くのな。 >228 >208がrect=(0,0,1,1)に拘ってたけど、rect=(80,64,1,1)とかは動作に影響があるな。 ソースにはラマーの意図を明確にする様に書けって話に戻るんじゃない? せいぜい他人が>217みたいなソースを書いてきたとき、頭を捻るって感じ。 そんな場面は限りなく少ないから、ググっても仕方ないで、 Q.E.D. ちなみに、俺が>208って言ったら信じる? グチっぽくならないコメントを考えるよw。
237 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:11:02 ] (´・ω・`)しらんがな
238 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:39:25 ] >>236 VistaだとGDI+ 1.1になっているから何か変更があるのかもしれない。 > rect=(80,64,1,1)とか そういうときのためのBitmapData.Stride。
239 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:11:20 ] >>236 > unsafeかつ、フォーマットの変更が有って初めてLockBit()は仕様通り動くのな。 >228 その条件を満たさないとき、ドキュメントにあるどの仕様に反してるんだ? 一部だけを切りだして Stride も小さくしてくれるとか、領域外をアクセスすると 違反になるとかは 208の脳内仕様じゃないいのか? LockBits は指定された領域を指定された様にアクセスできる情報を取得する ためのメソッドであって、指定領域外へのアクセスがどうなろうが別にバグでも なんでもない。ちゃんと当該領域は移動されないようロックされ、BitmapDataに アクセスするための情報も返される。
240 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:29:33 ] で、結局アホは誰だったの? 俺の他に
241 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:31:14 ] dat.2chan.net/l/src/12029988461823ffe.jpg やっぱ男はこうじゃないとね
242 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:50:29 ] コピペ君って馬鹿だな、まで読んだ。
243 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 19:09:48 ] コピペ君って馬鹿だな、まで読んだ。
244 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:42:33 ] Drawing::BitmapからGDI+のCachedBitmapを作成したいのですが、 Drawing::BitmapからGDI+のBitmapを取得するにはどうすればよい?
245 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 21:57:07 ] え? 早口言葉?
246 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:36:40 ] うわぁ・・・
247 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 00:59:38 ] bmp.GetHbitmap()ってことじゃなくて?
248 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:10:57 ] >>242-243 よく見るよね こういうのコピペって言うの?
249 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:34:08 ] 「コピ」−アンド「ペ」−スト