5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

ふらっとC#,C♯,C#(初心者用) Part45

1 :デフォルトの名無しさん:2009/09/21(月) 17:41:44
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part44
http://pc12.2ch.net/test/read.cgi/tech/1251439041/

444 :デフォルトの名無しさん:2009/10/02(金) 07:32:45
1つのファイルにWindowsFormが2つ以上同居できないとか、
ファイル内の最初のクラスにするといった制限は
IDE(Visual Studio)の制限で、別に言語の制限じゃない。


445 :デフォルトの名無しさん:2009/10/02(金) 07:41:42
enumやdelegateも型だから、
分けなきゃいかんのならこれも分けるの?てのもあるね。

javaの場合はpublicなenumはファイル分けなきゃいかんかった。
めちゃ不便。

446 :デフォルトの名無しさん:2009/10/02(金) 11:41:54
関連性が極めて強い型、殆ど従属してると言って言いような型とか、
列挙やらデリゲートやらは流石にファイル分けたりはしないな。

ただ、大体基本的には1クラス1ファイルになると思うけどね。


447 :デフォルトの名無しさん:2009/10/02(金) 14:28:27
パブリックなクラスが内部だけで使うプライベートなクラスとかなら
1ファイルに書いたりはする
規模にはよるけど

448 :デフォルトの名無しさん:2009/10/02(金) 14:57:49
ジェネリッククラスも作る時は一緒のファイルに書いてるかな

449 :デフォルトの名無しさん:2009/10/02(金) 15:28:30
まあ、その辺は好みだよな

450 :デフォルトの名無しさん:2009/10/02(金) 17:26:45
子ウィンドウハンドルの取得が出来ません。
EnumWindowsはなんとか出来たので、それを元にやっているのですが
EnumChildWindowsの使い方が理解できてません。

private delegate int EnumerateChildWindowsCallback(IntPtr hwndParent, int lParam);

[DllImport("user32.dll")]
private static extern bool EnumChildWindows(IntPtr hwndParent, EnumerateChildWindowsCallback lpEnumFunc, int lParam);

public int EnumerateChildWindows(IntPtr hwndParent, IntPtr lpEnumFunc, IntPtr lParam)
{
 return 1;
}

public void main(IntPtr hWnd)
{
 EnumChildWindows(hWnd, new EnumerateChildWindowsCallback(EnumerateChildWindows), 0);
}

これで「デリゲート 'LTLimit.WindowHandle.EnumerateChildWindowsCallback' に一致する
    'EnumerateChildWindows' のオーバーロードはありません。」と出ます

451 :デフォルトの名無しさん:2009/10/02(金) 17:34:18
EnumerateChildWindowsCallbackとEnumerateChildWindowsの引数が合ってないじゃん

452 :デフォルトの名無しさん:2009/10/02(金) 18:10:51
>>451
レスありがとうございます!
ただ、引数に何を入れるのかが分かりません。

(IntPtr hwndParent, WNDENUMPROC lpEnumFunc, int lParam);
とか
(IntPtr hwndParent, IntPtr lpEnumFunc, int lParam);
など試してみたのですがダメでした。

453 :デフォルトの名無しさん:2009/10/02(金) 18:28:33
>>451
APIの知識がないんだな
C#云々の問題じゃないし

454 :デフォルトの名無しさん:2009/10/02(金) 18:36:20
>>452
ちゅーかどっからそんなソースをもってきたんだろう。
引数はIntPtr hWnd, int lParamの2つだけ。
引数名をhwndParentとしているが、ココには親のウィンドウハンドルが渡されるのではなく
列挙された子ウィンドウのウィンドウハンドルが渡される。

455 :デフォルトの名無しさん:2009/10/02(金) 18:37:44
EnumChildWindowsの引数なんて言ってないんだが…

456 :デフォルトの名無しさん:2009/10/02(金) 19:23:55
>>454
子ウィンドウを列挙するソースが見つからないので
試行錯誤しているところです。
引数名は何も気にせずコピーしてました。

>>455
なんだか的外れな事をしてしまったみたいですみません。
どこをどう直せば良かったのでしょうか。

457 :デフォルトの名無しさん:2009/10/02(金) 19:25:58
C#のソースに拘らなくていいだろw

458 :デフォルトの名無しさん:2009/10/02(金) 19:39:51
>>457
こだわってるんじゃなく、違う言語がまったく読めないのでC#に出来ないのです。


459 :デフォルトの名無しさん:2009/10/02(金) 19:53:13
>>429
ぶー、88BASIC です。

460 :デフォルトの名無しさん:2009/10/02(金) 19:56:41
>>442
非常識自慢?w

ネストされたクラスはカウントしないとして、
例外クラスとenum以外は基本ファイルあた1クラスでしょ。

あとは、まあ小さなクラスなら派生クラスも同じファイルに書いちゃうことはあるが。

461 :デフォルトの名無しさん:2009/10/02(金) 20:06:12
いじわるしないで教えてやれよw

462 :デフォルトの名無しさん:2009/10/02(金) 20:24:42
何かプログラムしようと思うんだけど何も思いつかない

463 :デフォルトの名無しさん:2009/10/02(金) 20:42:39
教えてあげないよ

     _,∩_         _,∩_           _,∩_
    (_____)ゝ、     (_____)    y     (_____)
    / :: :: :: ヽ 〉     /-‐:: ::‐-ヽ /       / :: :: :: ヽ
   _./ (・ )ll(・ ) ∨     _/  0) i! 0) ∨      _/ ( ・)i!(・ ) ゙、_
 // :: :: ∈ゝ :: ::ヽ   // ::  ‐-‐ :: ヽ    //  :: ー一 :: ヽ\
. ゝ/:: :: ::  :: :: ::ヽ  ゝ/ :: ::  ::  :: :: ヽ   ゝ/ :: ::  ::  :: :: ヽく
   ̄ ̄ | ̄ ̄ | ̄ ̄     ̄ ̄ | ̄ ̄ | ̄ ̄     ̄ ̄ | ̄ ̄ | ̄ ̄
       |     |             |     |             |     |
    ⊂!     !つ        シ!     !つ        ⊂!     !つ

ジャン♪

464 :デフォルトの名無しさん:2009/10/02(金) 20:46:36
>>458
だから、APIが読めなければC#にもできないだろw
基本は同じなんだからさ

こんにちはの意味がわかれば、HELLOをどのタイミングで言えばいいかわかるだろ?
それと一緒だ

465 :デフォルトの名無しさん:2009/10/02(金) 21:07:18
下手な例えだなw


466 :デフォルトの名無しさん:2009/10/02(金) 21:13:24
>>433
>「復号化」ではないのでリアルで使うと恥じをかくことになると忠告しておこう
DESCryptoServiceProvider.CreateDecryptor メソッド
指定したキー (Key) および初期化ベクタ (IV) を使用して、対称 DES (Data Encryption Standard) 復号化オブジェクトを作成します。

セキュリティ関係用語じゃなくてMicrosoft用語ですだ。

467 :デフォルトの名無しさん:2009/10/02(金) 21:27:52
>>440
だから、原理的にはって言ってるじゃないか。
どう実装されてるか分からないから、適当に復号化するように実装されてないとは
言い切れない。
ドキュメント斜め読みしても見つからない。
一個かそこら試したとしても不安が残る。
時間は待ってくれない。

だからどっちに転んでも、まあ動くだろうって対応をした。って話。



ところで関係無いんだが、これ実はExcelVBAで利用したと言ったら信じる?

468 :450:2009/10/02(金) 23:48:40
解決したっぽいです。
レスくれた方ありがとうございました。

private delegate int EnumerateChildWindowsCallback(IntPtr hWnd, int lParam);

[DllImport("user32.dll")]
private static extern bool EnumChildWindows(IntPtr hwndParent, EnumerateChildWindowsCallback lpEnumFunc, int lParam);

public int EnumerateChildWindows(IntPtr hWnd, int lParam)
{
 return 1;
}

public void main(IntPtr hWnd)
{
 EnumChildWindows(hWnd, new EnumerateChildWindowsCallback(EnumerateChildWindows), 0);
}

469 :デフォルトの名無しさん:2009/10/03(土) 00:51:50
>>467
別に対応がおかしいとは言ってないよ。
実際復号されることもエラーになることもあるから。

>でないとTripleDESが不可能のはずだから。
これがおかしいと言ってるだけ。


470 :デフォルトの名無しさん:2009/10/03(土) 01:43:39
タラオ「トリプルですぅ〜」

471 :デフォルトの名無しさん:2009/10/03(土) 03:51:23
>>460
安心したw
今書いているクラスは入れ子になっているものを数えたら30個にもなっててほんの少し焦った。
まぁ、チョロっと必要な定数叩き込むときは1ファイルに2つぐらい書いちゃうけど大丈夫だね。

472 :デフォルトの名無しさん:2009/10/03(土) 07:07:02
>>469
TripleDESは、
暗号文 = 鍵3でDES暗号化(鍵2でDES復号化(鍵1でDES暗号化(平文)))
という仕様だから、DESはある鍵で暗号化したものを別の鍵で復号化できないと
実現不可能のはずだと考えたんだが、間違ってるのか?

473 :デフォルトの名無しさん:2009/10/03(土) 08:21:22
しつけえ

474 :デフォルトの名無しさん:2009/10/03(土) 08:29:56
いちおう書いておこう。

暗号アルゴリズム単体と、
〜Providerとかを使っての処理は
「違う」って言ってる。

DESとか3DESとかの暗号アルゴリズム単体では
ブロックサイズのデータとキーを与えたらブロックサイズの結果を出す単なる関数。
だからキーが違おうが何だろうが処理できる。

でも〜Providerとかを使っての処理は、暗号化のモードとかIVとかパディングを含めた処理
特にパディングがあるから、違うキーで処理したら処理自体に躓いてエラーになる場合が多い。


475 :デフォルトの名無しさん:2009/10/03(土) 08:49:58
>>460
わざわざ「Javaかよw」って書いてるんだから
例外クラス・enum・数行しかないクラスであっても、例外なくファイルに分けなければいけない ってのを皮肉ってるんだと思った。

476 :デフォルトの名無しさん:2009/10/03(土) 11:59:12
>>475
俺が無知なだけ・・・。
C#やってるけど今まで本なんて一回も読んだことないし、基礎知識なさすぎ。
最初なんてIfしらなかったせいでgotoで何もかもやってたこともあったしw
すっきりしました
ありがとb

477 :デフォルトの名無しさん:2009/10/03(土) 12:02:44
本とか言う前に、マニュアル読めよ・・・。

478 :デフォルトの名無しさん:2009/10/03(土) 12:14:29
いや、ホントの基礎はやっぱり何か入門本でやった方がいいよ。
まあチュートリアルとか、あとトレーニングとかオンラインで無料でできるやつもあるから
そんなのでもいいけど。
いきなりマニュアルはきついだろう。


479 :デフォルトの名無しさん:2009/10/03(土) 12:21:42
まあそこらの家電製品や普通のアプリと違って
「第一章:Hello worldを表示しよう!」
なんてのはマニュアルにないからなw

480 :デフォルトの名無しさん:2009/10/03(土) 12:54:14
http://msdn.microsoft.com/ja-jp/library/aa288463%28VS.71%29.aspx

> C# プログラマーズ リファレンス
> Hello World のチュートリアル
>
> このチュートリアルでは、C# 言語による Hello World プログラムのいくつかの記述方法について説明します。

481 :デフォルトの名無しさん:2009/10/03(土) 13:10:52
オイ俺のコピペ脳、まで読んだ。

482 :デフォルトの名無しさん:2009/10/03(土) 16:10:02
foreachを逆の順番で回すことはできませんか?
ま、forを使えばいいんだけど・・・

483 :デフォルトの名無しさん:2009/10/03(土) 16:16:07
出来るわけがない

484 :デフォルトの名無しさん:2009/10/03(土) 16:16:28
.Reverse()

485 :デフォルトの名無しさん:2009/10/03(土) 16:35:14
Reverseにしました

486 :デフォルトの名無しさん:2009/10/03(土) 16:40:27
Reverseは一度内部で最後まで列挙されて、そのバッファから吐き出されてるに過ぎないってことに注意。
但しIListを実装しているものは直接コピーするので、列挙のコストはかからない。

487 :デフォルトの名無しさん:2009/10/03(土) 16:41:12
ネットワークドライブへの再接続をする方法を教えてください

環境
PC A OS vista x64 sp2
PC B OS xp sp3
AはBのフォルダをネットワークドライブ(Zドライブ)に接続している
ネットワークドライブ(Zドライブ)は起動時に自動的に再接続される。

続く〜

488 :デフォルトの名無しさん:2009/10/03(土) 16:42:50
ケース1
Aのみ起動している状況で、
string[] drives = Directory.GetLogicalDrives();
をやると、drivesの中にZドライブが含まれない。

ケース2
Aを起動してからBを起動しても
drivesの中にZが入ってこない。

ケース3
Bを先に起動してからAを起動すると、
drivesの中にZが入ってくる。

ケース1 2のどちらでも、エクスプローラーではZドライブアイコンに×が重なって表示されます。
×になっているZドライブをダブルクリックすると、正常にドライブにアクセスでき、
その後は
string[] drives = Directory.GetLogicalDrives();
でdrivesの中にZドライブが入ってくる。

このエクスプローラーをダブルクリックするという作業を、なんとか代替できないでしょうか。

やったこと
DriveInfo di = new DriveInfo("Z");
string[] drives = Directory.GetLogicalDrives();
失敗

string[] test = System.IO.Directory.GetFileSystemEntries("z:\\");
string[] drives = Directory.GetLogicalDrives();
例外で強制終了
存在しないドライブの一覧を取得しようとしたのが問題っぽい。

どなたかお願いします。

489 :デフォルトの名無しさん:2009/10/03(土) 16:46:31
標準ライブラリじゃ無理のはず
Win32APIのWNetAddConnection2で再接続

490 :デフォルトの名無しさん:2009/10/03(土) 16:49:55
>>489
情報ありがとうございます。
win32apiは使ったことないですが何とかやってみます。

491 :450:2009/10/03(土) 18:47:55
Form1からForm2を表示したとき、
位置をForm1のLocationプロパティを参照して決めたいのですが、
参照の仕方を教えてください。

492 :デフォルトの名無しさん:2009/10/03(土) 18:50:30
考え方が間違ってる
Form1がForm2を表示する際に
var form2 = new Form2();
form2.Location = (this.Locationを基準に決めた位置);
form2.Show();
のようにする

493 :デフォルトの名無しさん:2009/10/03(土) 19:15:30
>>492
おおお!
ありがとうございます!

まったく思いつかなかったです。

494 :デフォルトの名無しさん:2009/10/03(土) 19:19:43
this.BackColor = System.Drawing.Color.Blue;

直接16進で指定は出来ないのでしょうか?


495 :デフォルトの名無しさん:2009/10/03(土) 19:20:13
Thread thread = new Thread(ThreadTask);
thread.Start();
でスレッドを起動するとき、引数はどう渡せばいいんでしょう?


496 :デフォルトの名無しさん:2009/10/03(土) 19:24:51
>>495
http://msdn.microsoft.com/ja-jp/library/6x4c42hc.aspx

497 :デフォルトの名無しさん:2009/10/03(土) 19:25:22
Color.FromArgb

Colorのリファレンスくらい見たらどうかと思う

498 :デフォルトの名無しさん:2009/10/03(土) 19:26:45
>>493
いやいやw

普通は(少なくともOOP的には)、別のFormの位置を参照して自分の表示位置を決定して表示する機能を
Form2自身が実装するようにすべき。

その方が分かりやすいでしょ?

ケースバイケースだけど、フツーは>>492みたいのは悪い例。

499 :デフォルトの名無しさん:2009/10/03(土) 19:36:49
余計な依存ができるだろ
もっとちゃんとした枠組みを作ってそういうことを実現するならいいけど
安易に他のフォームを参照しちゃうようなやり方は良くない

500 :デフォルトの名無しさん:2009/10/03(土) 19:41:03
>>497
ども、まだヘルプ入れてないんです。始めて二日目。
ありがとう、できました。

501 :デフォルトの名無しさん:2009/10/03(土) 19:49:21
は? >>500

502 :デフォルトの名無しさん:2009/10/03(土) 19:59:21
IntelliSenseからそれっぽい名前探し当てるとかできないのかなー。

503 :デフォルトの名無しさん:2009/10/03(土) 20:01:58
>>499
Locationは"Form1"で実装されてるメンバじゃない。
意味分かる?

依存なんかできないよ。
例えば、

void ShowAtLeft(Form referredForm)

のようにするだけ。

504 :デフォルトの名無しさん:2009/10/03(土) 20:01:58
Thread thread = new Thread(ThreadTask);
thread.Start(引数);
としたところ、

'System.Threading.Thread.Thread(System.Threading.ParameterizedThreadStart)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
引数 '1': 'メソッド グループ' から 'System.Threading.ParameterizedThreadStart' に変換できません。
ってことなんですけど…。


505 :デフォルトの名無しさん:2009/10/03(土) 20:08:38
ThreadTaskの方が引数受け取る気無いとか言わないだろうな

506 :デフォルトの名無しさん:2009/10/03(土) 20:12:22
private void ThreadTask(string 引数){}
としてます。


507 :デフォルトの名無しさん:2009/10/03(土) 20:16:39
ParameterizedThreadStartの引数の型に合わせんとダメ

508 :デフォルトの名無しさん:2009/10/03(土) 20:29:12
private void ThreadTask(object 引数){}
ってことですか?
それだと、
引数 '1': 'object' から 'string' に変換できません。
なんですが、objectからstringに変換すればオーケーなんですか。
どうやるんだろ。


509 :デフォルトの名無しさん:2009/10/03(土) 21:06:32
いらいら


510 :デフォルトの名無しさん:2009/10/03(土) 21:10:08
お前には無理だからあきらめろ。

511 :デフォルトの名無しさん:2009/10/03(土) 21:19:00
VC# 2008ならこれでいいよ。
new Thread(() => ThreadTask(実引数));

512 :デフォルトの名無しさん:2009/10/04(日) 00:20:08
できました。感謝です。


513 :デフォルトの名無しさん:2009/10/04(日) 00:22:56
どういたしまして

514 :デフォルトの名無しさん:2009/10/04(日) 00:24:48
こちらこそ

515 :デフォルトの名無しさん:2009/10/04(日) 01:32:50
スレッドでファイルをカウントして、
現在の状況をtextboxに表示しようとしています。

int i;
foreach(string file in files)
{
textBox.text = file + i;
i++;
}

これで「InvalidOperationExceptionはハンドルされませんでした。
有効ではないスレッド間の操作:
コントロールが作成されたスレッド以外のスレッドからコントロール
'textBox' がアクセスされました。」とエラー。
textBoxのプロパティをGUIでModifiers Publicにしても
おなじエラーなんですけど、
コントロールを作成したスレッドをPublicにするのは、
GUIの設定だけじゃだめなんですか?

516 :デフォルトの名無しさん:2009/10/04(日) 01:33:52
Invoke 使え。

517 :デフォルトの名無しさん:2009/10/04(日) 09:27:56
過去に同様の質問を見たことがありますが…
レンタルサーバーからインストールできるよう自作アプリケーションをアップしましたが、
.NET Framework の インストールに30分程度の時間が要してしまいます。

(1)
インストールするコンポーネント:
・Windowsインストーラー3.1
・.NET Framework Client Profile
の2つにしています。

(2)
クライアント専用Frameworkサブセットにチェックを入れています。

.Net Frameworkが入っていないXPなどのPCからインストールをしようとすると、
30分程度の時間を要してしまいます。

早くするためのテクニックはないでしょうか。
CDなどのメディアで配布したほうが良いのでしょうか。

教えてください。よろしくお願いします。

518 :デフォルトの名無しさん:2009/10/04(日) 10:24:50
PictureBoxの画像をマウスドラッグで移動させてるのですがおかしな現象に悩んでます
シングルスレッドで移動させているときはマウスのピクセル移動量と画像の移動量が一致します

しかし、マルチスレッドで移動させるとマウスのスピードに指数比例してすごい勢いで画像が流れます

親スレッドでMouseMoveイベントごとに現在位置のグローバル変数を移動
スレッド呼び出し
グローバル変数に従って画面を書き換え

こんな流れになっていてスレッド呼び出しされた側ではグローバル変数を参照しているだけで
位置情報を書き換える処理はしていないです
スレッドが呼ばれている間の位置移動とか特に意識していません

まあ絶対どっかでミスしてんですが、思い当たる原因のヒントでもいただけたらと・・・

519 :デフォルトの名無しさん:2009/10/04(日) 10:26:02
Client Profile 使ってなくて想像で悪いけど、
.NET Framework 3.5 Client Profile の数々の仕様って修正されてる?

その中の
・XP sp2以上でないと、結局3.5sp1をフルインストールされる
・他のバージョンの.Netがあると、結局3.5sp1をフルインストールされる
のどっちかという話はないか?

他にも
・インストールしたXPは、これをアンインストールしないとVistaにアップグレードできない
・インストールしたPCには、古いバージョンの.Netをインストールできない
・インストールされていない Oracle データ プロバイダが使用可能であると表示される
とかリリースノートで豪快に仕様扱いなんだなぁ。すげーぜ、さすがはアメリカンw

520 :デフォルトの名無しさん:2009/10/04(日) 10:26:34
デバッグしろよ

521 :デフォルトの名無しさん:2009/10/04(日) 11:12:27
クライアントプロファイルは正直使いもんにならん。


522 :デフォルトの名無しさん:2009/10/04(日) 11:16:24
>>518
スレッドの呼び出し?だけ消したら正常になるの?
一体そのスレッドで何やってんだ?
あとスレッドの呼び出し?って何時やってんの?
まさかマウスが動く度じゃないよね?
スレッド側の処理は一瞬で終わるもの?それともしばらく動き続けるもの?

523 :デフォルトの名無しさん:2009/10/04(日) 11:26:24
BindingSource bs = new BindingSource();

private void button1_Click(object sender, EventArgs e)
{
List<testclass> testlist = new List<testclass>();
testlist.Add(new testclass { A = "A1", B = "B1" });
testlist.Add(new testclass { A = "A2", B = "B2" });

bs.DataSource = testlist;
dataGridView1.DataSource = bs;

bindingSource1.DataSource = testlist;   ←ここに違うList<>をセットするだけでDataGridViewの中身を切り替えたい
//dataGridView2.DataSource = bindingSource1; ←ここはデザイン時にセットしてある
}

class testclass
{
public string A { get; set; }
public string B { get; set; }
}

上記のdataGridView1は期待通り表示されるのですが
dataGridView2は何も表示されません。
dataGridView2のようにデザイン時にDataGridViewのDataSourceにBindingSourceを
指定した場合はBindingSourceのDataSourceをセット(切り替える)した後に
何かしなければならないんでしょうか?

524 :デフォルトの名無しさん:2009/10/04(日) 11:40:13
>>523に追加
以下のdataGridView1と同じ動作をdataGridView2にさせたいのですが・・

BindingSource bs = new BindingSource();
List<testclass> testlist = new List<testclass>();
List<testclass> testlist2 = new List<testclass>();

private void button1_Click(object sender, EventArgs e)
{
bs.DataSource = testlist;
dataGridView1.DataSource = bs;

bindingSource1.DataSource = testlist;
//dataGridView2.DataSource = bindingSource1;
}
private void button2_Click(object sender, EventArgs e)
{
bs.DataSource = testlist2;
dataGridView1.DataSource = bs;

bindingSource1.DataSource = testlist2;
}
private void Form1_Load(object sender, EventArgs e)
{
testlist.Add(new testclass { A = "A1", B = "B1" });
testlist.Add(new testclass { A = "A2", B = "B2" });

testlist2.Add(new testclass { A = "a1", B = "d1" });
testlist2.Add(new testclass { A = "a2", B = "d2" });
}
以下略

525 :デフォルトの名無しさん:2009/10/04(日) 12:12:45
>>519
ありがとうございます。
.NET3.5sp1を入れてはいますが、結局使用はしていません。
.NET3.5のみを配布したら早くなるでしょうか…。


526 :デフォルトの名無しさん:2009/10/04(日) 12:14:50
>>522
今は暫定的にマウスが動くたびになってます
最終的には移動量が一定量を超えたとき呼び出すつもりです
そのスレッドでは移動量をグローバル変数から取得してそれに応じた小さなファイルを読み込んでメインスレッドのInvcke呼び出し
メインスレッドのハンドラでダブルバッファに書き込んで、移動分だけ画像をシフトしてます

527 :デフォルトの名無しさん:2009/10/04(日) 12:18:29
自分のアプリでクラスライブラリ(.dll)作って一緒に配布すると
そのライブラリを別のアプリケーションで勝手に使っちゃえると思うんだけど
それを防ぐ方法はないのかな?

528 :デフォルトの名無しさん:2009/10/04(日) 12:20:36
>>527
ない。

529 :デフォルトの名無しさん:2009/10/04(日) 12:21:41
>>527
ロード元のアセンブリをチェックすればいいだけだろう

530 :デフォルトの名無しさん:2009/10/04(日) 13:01:15
>>529
そうか、そうですよね。
調べます。

531 :デフォルトの名無しさん:2009/10/04(日) 14:17:34
>>529
の方法を簡単に説明してくれ

532 :デフォルトの名無しさん:2009/10/04(日) 14:19:44
アプリ中のオブジェクトを(型指定して)列挙するにはどうしたいいんでしょうか?

533 :デフォルトの名無しさん:2009/10/04(日) 14:35:27
>>532
なんでそんなことしたいんだ?

534 :デフォルトの名無しさん:2009/10/04(日) 17:55:02
>>532
さては他人の作ったソフトウェアのメソッド叩きたいとか考えてるな!
やめとけw

535 :デフォルトの名無しさん:2009/10/04(日) 18:12:38
恐ろしいことを平気でやってのけてこそ初心者!

536 :デフォルトの名無しさん:2009/10/04(日) 19:05:37
設定ファイルを読み込むのはメインのFormのコンストラクタ内でするのか、
Loadイベントのハンドラで行うのかどちらがいいのでしょう。

537 :デフォルトの名無しさん:2009/10/04(日) 19:06:28
C++でCLRのアンマネージインターフェイスを叩く必要があった気がする

538 :デフォルトの名無しさん:2009/10/04(日) 19:10:33
>>536
内容による。

539 :デフォルトの名無しさん:2009/10/04(日) 19:10:46
>>532
リフレクションでやってみれば?

540 :デフォルトの名無しさん:2009/10/04(日) 19:11:38
バグを見つけて臍をかむのがオチなんだよなぁ。
マニュアルの System.Reflection 名前空間見るとか、「リフレクション C#」ググるとか。

単に見たいだけなら一番簡単なのは、VSで参照してオブジェクトブラウザで覗く。

541 :デフォルトの名無しさん:2009/10/04(日) 19:19:48
>>538
ウィンドウのレイアウトから、オプションダイアログで設定するようなものまであります。

542 :デフォルトの名無しさん:2009/10/04(日) 19:24:04
リフレクションではオブジェクトそのものは見られないよ
MSがソース公開してるCLRプロファイラやWPFプロファイラは部分的にC++使ってた

543 :デフォルトの名無しさん:2009/10/04(日) 19:27:32
>>541
Formに関する設定ならばLoadだろうね。
逆にコンストラクタできちんと動く?

544 :デフォルトの名無しさん:2009/10/04(日) 19:47:32
>>525氏の話だけど、
みんなは配布用アプリを作る時は、インストールに時間がかからないようにどのような工夫をしているの?

231 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)