>>4 なんでC#スレでWindowsのWikiをみなきゃ
ならんのだ?
正直俺もそう思った
>直接貼る場合はhtmlエンコードした方がインデントも残って見やすいです。 nbsp;とか効かなくなったんじゃなかったっけ (テスト) うんこちんちん
セキュリティの常識を持ち合わせたサイトなら 利用者がHTMLエンコードを意識することは あってはならないのだけれど
>>8 はぁ?
表現力のために特定の HTML エンコードを使えるようにすることが
あってはならないとか、バカじゃねーのか
噛み合ってない 使うかどうかじゃなくて、意識するかどうかってことだろ そんくらい自動でやれゴミってこと
セキュリティ考えるとタグを制限した方がいいが、
それと自動でエンコードして閲覧者が見やすく使いやすくってのは別問題
つまり
>>8 、
>>10 はただのバカ
制限以前に、ユーザーの入力したHTML(タグ含む)が Webサーバーからブラウザーに出力される仕組みが 危険極まりなくね?
単発が湧いてきたな
15 :
デフォルトの名無しさん :2013/07/06(土) 17:04:52.66
HTMLメールが危険とか未だにいってるの日本だけだよw AppleもMicrosoftもAdobeも世界の一流メーカーは普通にHTMLメールだよ 日本はIT後進国だからしかたないか・・・
いつまで経っても権威主義がにじみ出てるね 3流から君はいつ出世するんだ
ageてまで言いたかったんだろうから聞いてやれ。
根本はるみっておったな
19 :
デフォルトの名無しさん :2013/07/06(土) 18:04:18.09
少なくともこのスレにAppleやMicrosoftでプログラマーとして活躍できるレベルの人間いないだろwww
1人はいるんじゃないの?よ〜く考えてみようよ
サニタイズの話が理解できずに htmlが危険と勘違いする >15は危険
昔の2chだとそれを利用した荒らしが発生してたよな
サニタイズ言うなキャンペーンってあったな
>>8 > セキュリティの常識を持ち合わせたサイトなら
2chがそんな大層なサイトな訳ないじゃないか
今時Shift_JISなんだから実体参照入力できなかったら書けない文字があるんだよなぁ
今更文字コードを変えると影響がでかすぎると考えてるのか それともただ面倒くさいだけなのか
動いているソースはいじらない 鉄則ですよね
そんな初歩も分からないからこのスレの人間はほとんど糞だというのですよ 使えるのはほんの一握りでしょうね
まあ確かに現場で使える人間なんてほんの一握りだけどさ。 こんな場所でになに言ってんの?w
働いてれば分かることだから、学生か何か。しかも使えない側なんだろ 同類は多いよね、と安心したいだけかと
雑魚ばっか
自己紹介?合コンでもはじめるの?
IME が ON のとき、Ctrl+F10(デフォルトではIMEメニュー表示)を、 IMEより先に取得して、imeのメニューを出さずに、プログラム側で取得するようにする方法はありますか? ProcessCmdKeyより先にフックされてしまうようで、うまくとれません。 WindowsMessageでできるのかもしれませんが、いまいちやりかたがわかりません・・。 Windows7 標準のIME です。 初心者板に書込みましたがレスがありませんでした。 マルチになってしまいますがこちらにも・・。
マルチするなら、元のスレの書込みを取消して こっちに誘導する文を残してこい
class A{ delegate void DA(); DA m_da; protected A(DA da){} void Invoke(){m_da();} } class B : A{ delegagte object DB object o: B(DB db) : base(delegate{o = db();}) {} } baseのコンストラクタに 自身のメンバを参照するdelegateを 渡す方法はありませんか?
>delegagte object DB そもそもメンバを参照するデリゲートなんか存在しない
DB db1=null; DB db2=()=>db1(); var b = B(db2) db1= b.hoge; こんなことやらずに素直にベースクラス変更しろ
諦めて()書けばいいだけだ
C#はバカになる言語って言われた(´・ω・`)
道具に使われてる人間である限りはその考えが正しい
言語仕様なんて簡単で効率的でそこそこの速度ならなんでもいいんだよ 最終的にエンドユーザーに驚きや喜びや楽しさを与えないで何がクリエーターだハゲっが 俺は元々デザイナーあがりでプログラマーになったからデザインとプログラム両方できていつも重宝される ○○はバカになるとか、おまえが100人中100人満足する言語仕様作ってみろと
バカ発見
今リフレクションをゴリゴリ使って遊んでるけど、 足りてるようで色々と足りてないところがとても気になるところだ。 フィールドの型が構造体の場合、 そのフィールドを GetValue するとボックス化された値が返されるので、 その値を編集しても元のフィールドに影響が出ない。 構造体配列でも同じことが起きる。 仮想メソッドをオーバーライドした場合、 基底クラスのそのメソッドを派生クラスのオブジェクトを使って リフレクションで呼ぶ手段が無い。 前者は構造体を編集した後にまたフィールドに代入し直すことで、 後者は基底クラスのメソッドに処理を委譲するだけのメソッドを派生クラスに用意する事で なんとか動くようにはしたけど、 リフレクションすれば private メンバにまでアクセスできるんだし、 もうちょっと何とかなる手段が欲しい所。 他に何かいい手段ないですかね?
>>42 少なくとも前者に関してはそれを問題だと思うことの方が間違ってる気が
44 :
デフォルトの名無しさん :2013/07/12(金) 00:05:40.27
>>42 前者は__makerefで参照を取得してFieldInfo.SetValueDirect
後者はDynamicMethodとILGeneratorを使用してcallvirtではなくcall命令を発行
>>44 それは分かってるんだけど、
全て動的に解決しないといけない状況だからできないんだよね
__makeref も Emit もコンパイル時に型やメソッドが判明していないと使えないから
いや、違った __makeref は TypedReference が持ち回りでいないから使えないんだった
教えてください〜!! .NETのIPCチャネルを使用してプロセス間通信を実現したいのですが、 サーバ側のプロセスが再起動した場合、クライアント側では何を基準 に再接続すればいいのでしょうか? また、有効期限(InitializeLifetimeService)が無限にしているのですが、 それって、サーバのプロセスが終了すると解放してくれますか? よろしくお願いいたしますm(_ _)m
48 :
47 :2013/07/12(金) 16:47:23.75
ちなみにクライアントは「受け」だけで、クライアントから要求することはありません。
再接続? .NET RemotingにせよWCFにせよメソッド呼び出しの形式なんだから 普通は接続なんて意識しないと思うのだけど > それって、サーバのプロセスが終了すると解放してくれますか? そうじゃなきゃ一体どこに実体を持つってのさ
>.NETのIPCチャネル そんなものはありません
51 :
47 :2013/07/12(金) 17:33:47.24
>>再接続というのは 再起動後のサーバーのオブジェクトを参照できるようにしたい。と言う意味です。 方法として、オブジェクトにIDisposableかなにか入れて、Disposeが呼ばれたときに フラグを立てて、クライアントに再接続要求を出すくらいでしょうか・・・ .NETでIPCチャネルでした。すいません。
基本的にメソッド呼び出しの度に接続するんだから再接続も何もないって話なんだけど サーバ側のシングルトンオブジェクトが再作成されたときにクライアントが処理を行いたい? あと一般的にクライアントがサーバオブジェクトを呼び出す形だが クライアントが受けて要求することはないって構造がよく分からん
53 :
47 :2013/07/12(金) 17:54:03.05
MarshalByRefObjectにイベントをつけて以下の様にする予定です。 public class Test:MarshalByRefObject { public event Action<bool> TestEvent; public void OnTestEvent(bool test) { if (TestEvent != null) TestEvent(test); } } クライアントはサーバーオブジェクトのTestEventにデリゲートを関連付ける といった形です。 この場合に、サーバーのオブジェクトがリリース(解放)されたかどうかを どうやってクライアントが知り得るのでしょうか?
サーバーからクライアントへ「これから破棄するよ」って送るか、 クライアント側からアクセスした時にアクセスできないことから判断する
質問なんですが
お断りだ
お、男割りで
質問です。 public class A{ string text; public A(string text){ } }
クラス内の変数なのかどうかがわかるように変数名決めたほうがいい
難解な質問だな
書いてる途中で送信してしまいました。 しかも書いてる途中でなんとなく自己解決できてしまったので、 とりあえず忘れてください。もうしわけございませんでした。
質問なんですが visualstudioでSQLサーバーを使って 所持しているマンガの在庫管理プログラム的なものを作ったんですが そのプログラムをソケット通信を使って 自分のパソコンをサーバーにして 別のパソコンで動かすようにするのは可能でしょうか? もし可能ならやり方を教えていただけないでしょうか?
ソケットの勉強を始めようと思って 自分の作ったものでソケットとつなげたいと思ったんですが そういう設定があったんですね。 では他にソケットを勉強するにはどういうものがあるでしょうか?
時代遅れだろ ASP.NETでサーバー側だけで作るか、 DB-Webサービス-HTTP-クライアント の構成にすればいいのに
定番はチャット
C#で作ったアプリを他のPCで動かしたいのですが 「○○が見つかりません」とか「○○が登録されてません」とかで、 結局、開発環境をインストールして1回ビルドするまでは、 起動できませんでした。 Visual C# 2010 Express 追加の参照設定 MSScriptControl、AxWMPLb VisualBasic.PowerPacks これらに必要なファイルをコピー・登録して アプリを実行できるようにする 無料のインストーラはありますか? または、コピー・登録をバッチで実行するような 方法がありますか?
そういう時は再頒布でぐぐれ
>>68 ありがとうございます
VisualBasic.PowerPacksのインストーラを見つけられたのですが、
AxWMPLibがインストールされているにもかかわらず
登録されてませんとでます。
また、MSScriptControlは関係なかったようです。
そもそもVisualBasic.PowerPacksなんて使うなハゲ Microsoft.VisualBasic.PowerPacks.Vs.dll は単体配布は認められてないみたいですね。 AxInterop.WMPLib.dllとかInterop.WMPLib.dllみたいなファイルが実行ファイルと同じフォルダにできてませんか? それを一緒に配布せんかいヅルムケが
激しく正論
インストーラーの作成すら理解してないとかコーディング以前の問題だろwww しかもExpressなのに2008〜2012と一番糞重い2010使ってるとかワロスwww 初心者質問スレいけよカスwww
>>70 ありがとうございます。
PowerPacksはLineShapeのために使ってます。
他に、線を引くだけの良い手段があったら教えてください。
AxInterop.WMPLib.dllとInterop.WMPLib.dllが同じフォルダに出来ていて
一緒にコピーしましたが、変りませんでした。
DebugフォルダまたはReleaseフォルダごとコピーしましたが同様でした。
>>72 新しいプロジェクトの一覧にインストーラがありませんでした。
他のインストーラでも良いので、無料で利用できるものがあったら教えてください。
普段は2010のプロジェクトを2012で開いてますが、
やはりインストーラのプロジェクトはありませんでした。
前にも言った気がするがWMPはバージョン違いかと
>>75 ありがとうございます。
すいません、過去ログ拝見してませんでした。
バージョンの違いを吸収する方法はありませんか?
>>76 ありがとうございます。
まずは、これを試してみたいと思います。
>>77 バージョンの違いを吸収する方法はやった事ないからわからん
おしえてくださいー! IPCチャネルのナマエなのですが 以下の二つは同じプロセスで共存できないですよね? ipc://A/B ipc://C/D やるとしたらこうするしかないですか? ipc://B/A ipc://C/A ipc://D/A ipc://E/A
public abstract class ObjR : MarshalByRefObject { public abstract void Do(); } public class ObjC : ObjR { public override void Do() { Console.WriteLine("C"); } public class ObjD : ObjR { public override void Do() { Console.WriteLine("D"); } var c1 = new IpcServerChannel("a", "c"); ChannelServices.RegisterChannel(c1, false); var c2 = new IpcServerChannel("b", "d"); ChannelServices.RegisterChannel(c2, false); RemotingConfiguration.RegisterWellKnownServiceType(typeof(ObjC), "e", WellKnownObjectMode.SingleCall); RemotingConfiguration.RegisterWellKnownServiceType(typeof(ObjD), "f", WellKnownObjectMode.SingleCall); var c = (ObjR)Activator.GetObject(typeof(ObjR), "ipc://c/e"); c.Do(); c = (ObjR)Activator.GetObject(typeof(ObjR), "ipc://d/f"); c.Do();
81 :
デフォルトの名無しさん :2013/07/17(水) 21:26:46.19
datatable view datasource ↑C#3日目だけどこのへんの関係がよくわからん だれかわかりやすくおしえて
IListSourceとかいろいろ絡むんで文字では説明しづらい
83 :
デフォルトの名無しさん :2013/07/18(木) 23:41:40.57
いずれは国籍なんて無視して理系及び理系の重要性を認めて理系側についた 人間(ニュータイプ)だけで独立国家のジオン公国つくって、何も生み出す 能力がなく金や資源や穀物を右から左に動かして中間搾取するだけのモラル の無い腐りきった文系男(オールドタイプ)国家に戦争しかけるのが人類の 最終形態だろう、200年先になるか300年先になるかはわからんが
それより先に太陽フレアで大停電してメルトダウン多発で人類終了のが早いよ
映画・アニメの見すぎ
デリゲート型の動的作成についての情報が少なくて苦労したのでメモ 基本的にDefineType/DefineNestedTypeでMulticastDelegateの派生クラスを作成し、 属性等は逆汗して出てくる通りにすればいいんだけど、 各メソッドの実装は不要で、SetImplementationFlagsでRuntime | Managedを指定するのが肝 まあこれも逆汗した通りなんだけど
んな面倒なことしなくても テキストテンプレートでF<T>, F<T1, T2>, F<T1, T2, T3, T4> みたいにジェネリックデリゲートを大量に生成しておいて MakeGenericTypeでおk IronPythonなんかそういう実装だよ
Rxじゃいかんのか?
俺は太陽の子!
>>87 言語作ってるからそんなのじゃだめ
ref, out とか考えると組み合わせ爆発するし
>>90 ?
静的言語作ってるんならコンパイル時にIL生成するんだからリフレクションなんか関係ないでしょ
Mono.Cecilでも使えばいい
>>91 超がつくほどの動的言語だよ
それこそ動的にアセンブリをロードして
その型の値をそのまま使える程に
Expression.GetDelegateTypeがあるでしょ あとレイトバインディングは変なオレオレ実装しないでCallSite使えよ
3.5なんだよー 使えないよー
知らんがな どういう事情かは知らないが、3.5基準で作ったら4に移行してdynamic対応するときに 設計総取っ替えになるのを覚悟しとけよ
趣味グラムに対して大げさすぎだろw
趣味ならそれこそこだわる必要ねえな
IronPythonのソースをパクってくればちょこっと#ifするだけで 4のDynamicのプロトコルに対応しながら3.5にも対応できるぞ 4のCallSite/Dynamic周りは最近の最適化手法やらMOPやらが使われてて 自分で言語作るような奴には結構面白いと思うよ
Dynamicって何に使うの? 言語厨のオナニーじゃないの?
>>99 C#のdynamicやIronPythonなどに使われてる
動的コード生成とキャッシュの仕組みを比較的簡単に利用でき高速
他の言語のオブジェクトへの操作が透過的に行える
dynamic周りは使いたかったんだけどねえ Win7で.NETバージョンアップしてなくても使えるようにしたかったから
4だと世界がぱっと広がる感じ 2の時もそうだったけど
3.5も割と
ドカタなら3.5の方がインパクトあっただろうな 4はインフラばっかりだから
4の方がインパクトというかもの凄く楽だよな TaskにAsyncにRx2.0、ただ海外商用フレームワークのほとんどが3.5推奨というか、3.5と4.0〜で互換性がなくて3.5使わざるを得ないんだよね
Task.Factory.StartNewのグダグダ感ときたら.... ってういか全然関係ないけど、WinRT用の.NETだと生のThreadクラスが使えなくなってて なんだか嫌な感じ。
俺も生が好き
俺も生でバック(グラウンド)でよくやるわ
品がない
ないのは品だけじゃないですっ!
何で中に入れるんだよ 外出ししろよ
ボキュの精神年齢は永遠に14歳でちゅ、まで読んだ。
おるちゅばんエビちゅ でちゅ まんこでちゅ
3.5ならデフォでWin7動くのが大きい
今なら、クライアント系のOS(vista以降)ならWindowsUpdateで自動的に4が インストールされてるから、それ程気にしないで良くなった。
自動アップデートなんて鬱陶しいもの速攻OFFが基本だと思いますが... っていうか、最近のMSってもう世界中どこでもブロードバンドが普及してると 勘違いしてる気が。 そもそもアメリカだってブロードバンドが使えるのなんか東海岸と西海岸の大都市だけだろうに。
限られた環境向けじゃないなら 自動OFFが基本なんてのを前提にするのはNG だけど4が入ってるってのを前提にするのもNG
net frameworkを別途入れてくれって言うと、 ものすごい嫌がられるか、めんどくさがられるか、仕事断られる OSにデフォで入ってるってのはかなり重要
気絶した
119は無職なんだろ
中二病には見えんな
アメリカには笑った
助けてください>< SQLServer2008(以上)でCLRを使用して プロセス間通信を行いたいです。 通信をするためにWCFかリモーティングのIPCチャネルか どちらかを使いたいのですが、SQLServerのアセンブリの参照に 追加する際に、Remotingとwebのdllが循環参照になってしまいます。 WCFかリモーティングを使いたい場合どのようにすれば使える のでしょうか? また、WCFやリモーティング以外でプロセス間通信をする方法(SQLServerで) があれば教えてください。よろしくお願いいたします。
SQLServerと言うサーバソフトと、当然そのクライアントがすでにあるのに 何を独自通信でやりとりする必要があるんだろ
127 :
125 :2013/07/23(火) 11:11:12.83
>>126 理由としては、クライアントからの呼び出しでSQLServer以外に他プロセスに作業して欲しいからです。
また、クライアントは様々な言語で作られており、ミドルウェアを作ることなく、簡単にサーバーに作業
依頼をするにはSQLServerのCLが便利だからです。(もちろん、SQLServer自体にもアクセスするために
内部接続を使い高速化も出来る理由もあります)
循環参照て
QuartzTypeLibを使って、静止画をwmv形式に出力させるにはどうしたらいいのですか? Win7で32bitと64bitの両方で対応させようと思っています。
>>129 色んな方法があるけど一番馬鹿っぽいけど作業量が少なく済むのは動画変換プログラムのソースを改造する方法
元動画のフレームを静止画に差し替えちゃえば終わり
>>118 客からすれば、別途自分で入れるのは、尻込みして当然。
アプリのインストーラーで自動的にインストールされるようにしないの?
まだまだ続くよー
>>131 インストーラーを起動させるのにフレームワークが必要だったりして……
>リモーティングのIPCチャネルか ああ、8年ぐらい前にそんなのあったっけか
135 :
デフォルトの名無しさん :2013/07/26(金) 01:43:13.64
今、個人用のプラグインを作ってるんだが アドオンでプロジェクト内にファイルを追加する方法がわからない。 MVCみたいなの作りたいんだよ
>>135 C#じゃやったことないがたぶんjavascriptでいける
デフォルトのアドオンのソースを参考
c#のwindowsサービスで質問です。 System.Net.FtpWebRequestにてFTP受信したいのですがタイムアウトになります。 windowsサービスでFTP受信する方法はないでしょうか?
>FtpWebRequestにてFTP受信したいのですがタイムアウトになります それとサービスに何の関係が?
いろいろ情報が足りなさすぎるw
FTP受信 って何ですか?
本当にタイムアウトなのかチェック FW系に邪魔されてないかチェック localhost宛てでもタイムアウトするかチェック
別掲示板によるとファイアウォールの問題だったらしいよ
なんだ。マルチポストか。
C#で作成したプログラムで 別プログラムから実行中のexeのデータメンバにアクセスすることは可能ですか? 別プログラムから実行中のexeの配列メンバの中身を参照したいです。 色々と調べてみたのですがやり方が見つかりませんでした。 知っている方いらっしゃれば教えていただけないでしょうか?
リフレクション
Marshal + 共有メモリ
.net4.0でMemoryMappedFileが追加されたとどこかで読んだ気が。 使ったことないから詳細は知らんけど
その実行中のexeのコードをいじれないのにデータにアクセス()したいと言ってるなら諦めろ。
>>148 バカ?
プロセス上の任意のメモリを外から覗く方法を求めているのなら、そんなものはありませんけど
WCF
いまの人はICEとか使わないのか
ICEてw 組み込みでもICEなんて使わなくなってもう10年以上になる。 ちなみにそれにICEで覗けるのは物理メモリであってプロセス上の仮想メモリじゃないw
>>144 が曖昧だからいけない
2つのexeのどちらもソースコードいじれる状態なのか否か
そこが曖昧だからいきなりメモリ覗くとか任意のプロセスがどうのとか言い出す馬鹿が湧く
そもそもふらっとスレ向けの話題だ
>>151 絶対の自信がある時しか人を煽らない
オレはそうしてるよ
ちなみに書き換えは想定してほしい
特にUIはフリーソフトで素人でも弄れちゃうからな
?
>>156 世間2位のカメラ屋で開発してるけどまだICEありますぜ
>>160 それは慣例的にICEと呼んでるだけで本来のICEじゃない。
本来のICEはオンチップのデバッグ機能のことじゃないんだよ
いやお前さんが言ってるのも分かるし、俺がつかってんのも紛れもなく本来の意味でのICEだよ チップのエンジニアリングサンプルが上がったとき評価に使ってるからな
だから本来のICEなんて前世紀で絶滅しましたって 何言ってるんだろうねえ..
仮想メモリーもメモリーはメモリーだよな 変換テーブルがあるだけで
自分が見たものしか信じない人が何を言ってるんだって話ですわ メクラ
また数日に渡ってスレと全く関係ない話を続ける気なんですかね。
○○だ。いやそうじゃないって。
>>144 戻ってきてもう少し詳しく用件述べろや。
アプリのインストール禁止の現場でオープンソースのCソースを持って来てコンパイルするのはマズイですか? コンパイルしてもプログラムファイルディレクトリにはインストールはしないでドキュメントフォルダなどから起動します
>>169 どこからでもかかって来たまえ
私の10年鍛えたムエタイテクニックを披露してあげよう
ソケット通信が良い
144です。 質問内容があいまいだったようで申し訳ありません。 状況としては、両方ともソースコードは見れる状態ですが データを保持してる側のソースコードを編集できない状態です なので、データを参照するexeから何とか起動中の別exe(ソースコード編集付加)の 配列データを参照できないか調べています。
サーバー側でGUIホストサーバー建てて クライアントはHTML5でGUI仮想コンソール作ったらどうだろう? 昔Javaアプレットでそんなの作ってる人見たことある なんか書いてたらそんなの作ったら売れるかな?って思い始めた
それならシス管に怒られそうになっても返り討ちにできますね なんだ、何の問題もないじゃないですか
>>172 おれもわからんが回答無いみたいなんで
exeのバックグラウンドスレッドで情報公開するイメージかな
そのロジックをどう仕込むか?
exeを実行するexeを作り
(exe参照設定した上でMainを実行)
実行と同時にバックグラウンドスレッドで情報公開用サーバーを開始
ソースには手を付けないからこれでおk?
処理速度が必要ないならメモリダンプファイル書き出してそこから読み取る
そのデータを保持してるEXEが、データを外部に提供するようになってなければ基本的に無理だろ プログラム実行中のデータ勝手に盗み見るってつまりマルウェアそのものだぜ
DLLインジェクションとかな
現実解は
>>117 だな
ソフト/ハードICEとかDLLインジェクションとか実現性に欠ける
アプリのインスコは禁止でもExcelマクロはお咎めなし なんだかなぁ
デバッガとか言ってる奴はすっこんでろよ
基本的にって意味を理解できないのか?
>そのデータを保持してるEXEが、データを外部に提供するようになってなければ基本的に無理だろ →基本的には無理。だけど(UIから読み取るなどの方法であれば)できることあるよ >プログラム実行中のデータ勝手に盗み見るってつまりマルウェアそのものだぜ この文には「基本的に」はかからないから、(メモリなどの)盗み見はマルウェアそのものってことになる 日本語使いたいなら日本語理解してからにしとけよ
>>186 お前の主張が理解できんのだが
他人の日本語能力にケチつけたいだけか?
昨日から暴れてる恥知らずの連中の1人でしょ。 っていうかさあ、マルチタスクOS(って言葉も死語に近いけど)のプロセスがどういうものかの 基礎知識もない奴が偉そうに人に食って掛かるんだから泣けてくるねまったく。
ところでこれ何時CM入るんだ? いいかげんトイレ行きたいんだが
泣けばいいじゃん そのまま死ねよ
>>184 デバッガがあるんだから、そう言うことをする手段があることぐらい想像もできない奴は、とっとと立ち去った方が恥かかなくていいぞ
出っ歯がなんだって? いや、両方いい加減にしようぜ
仲裁役気取りか?いい加減に消えてくれねえ?ウゼエんだよお前
ワル気取りよりよっぽどましだが
マシなだけなら存在価値はやはりマイナスなのでご退場あそばせ
.net製のオブジェクトの状態を知りたい場合にデバッガがどう役に立つの?
どう役に立つのか聞いてんだよ低能
低能に頭下げないと分からないようなド低能は脳髄豚に食わせて死ね
分からないならレスしないでください。うざいだけです
空気未満の真空脳は寝込んどけ 目覚ますな
>>196 CLRにはデバッグAPIというのがあって、それを使えば上で動いてるアプリの
変数やオブジェクトの状態などを取得したり変更したりできるんだよ
C++を使ってCLRをホストして使うんだけど、VSのデバッガはそれによって実装されてる
この子供みたいな煽りあい・・・
んじゃ、識者のみなさんは
>>172 に適切なレスをしてあげてくださいね。
デバッグAPIを使えば実行中のCLRのメモリを読み取れるって言ってんのに デバッガのメリットじゃないってお前は一体何を言ってるのw
短芝 夏だな
このスレは年中こんな感じだが?
デバッガや、それようのAPIを使うことが妥当かどうかって話があるんだが まあ、そのへんは元質問者のやりたい事がイマイチ分からんから何とも言えん
>>198 デバッガ使ったことあればそんな質問はしない。
「デバッガ」って単語は20年ぐらい前はよくきいたけど、今は全然使わないな
デバッガばっか
C♯100行未満の初心者です DirectXで描画されるゲームから映像の取得 映像と同期のとれたオーディオの取得 H264エンコードできるDLLとその使い方 以上3点のサンプルページへ誘導願います
ggrks
ggrks
1000行書いたらまたおいで
>>216 > C♯100行未満の初心者です
既に心が汚い
心が汚いからC#を使うんだよ つまり君らは
汚れちまつた 哀しみに
>>216 DirectXで描画されるゲームから映像の取得 -> Alt+PrintScreen
映像と同期のとれたオーディオの取得 -> ラジカセ
H264エンコードできるDLLとその使い方 -> Encoder 2
ポエマーきもっ
exceptionかせthrowされたらcatchしてmessageboxをshowしてretryがreturnされたらもういちどtryをやりなおすには?
while( true ) { try { Nanika(); break; } catch( Exception ex ) { if( DialogResult.Retry != MessageBox.Show(...) ) { break; } } }
while( true ) { try { Nanika(); } catch( Exception ex ) { if( DialogResult.Retry == MessageBox.Show(...) ) { continue; } } break; }
goto
できた
ぼくにも
Func<bool> job = () => { try { // DoSomething(); return true; } catch (Exception) {} return false; }; while (!job() && MessageBox.Show("hoge", "hoge", MessageBoxButtons.RetryCancel) == DialogResult.Retry) ;
start: try { Nanika(); } catch( Exception ex ) { if( DialogResult.Retry == MessageBox.Show(...) ) { goto start; } }
>>234 そういう場合は普通にぶら下がりで書いて
c#で作ったクラスをcomで公開したいのだがうまく行かない gacutilで登録する時に登録成功と出るのに/lオプションで確かめると登録したはずのものが出てこない 成功した言うたのに無いってなんでやねん
その登録するところだけを残した状態のをどっかに晒してみるとか。
・管理者権限(実行できてるならこれはないか) ・64bit/32bitの違い ・バージョン違い ここらへんかいな
form側をx86にしたからCOMもx86だけ登録すればいいだろ、と思ったら動かなくてはまったことあるな
使うのはgacutilじゃなくてregasmなんだが
だな
すまん gacutil /l xxx.dll でやってた 拡張子いらないのね…
243 :
デフォルトの名無しさん :2013/08/10(土) 17:07:00.08
devexpressでテーブルに関連付けた小テーブルに対して そのなかの1列にボタンを追加したんですが ボタンの押下した際にその行の情報が取得できなくて困ってます どうやって取得できるかどなたか教えて下さい。
>>243 >devexpress
そんなもん使ってる奴いねーだろ
リモーティングについて教えてください。 現在プロセス間通信でリモーティングのIPCチャネルをつかっているのですが、 クライアントからサーバーオブジェクトのメソッドを呼ばれるたびにハンドルが 増えていきます。何をしているのかと言うと、クライアントは「生きている」という メソッドを指定間隔ごとに送るだけです。なにが原因でハンドルリークしているのでしょうか? ちなみに250から開始して600程度までハンドルが上がると300まで落ちました。 public class RemoteTrance : MarshalByRefObject, ISendToken { internal event Action<bool> ReceivedTokenEvent; public override object InitializeLifetimeService() { return null; } [OneWay] public void SendToken(bool isAlive) { if (ReceivedTokenEvent != null) { ReceivedTokenEvent(isAlive); } } }
VS2008のC#でCEアプリを作ることになりました。 .Net Compact Framework 2.0ってのを使って開発するそうなんですが どやって.Net Compact Framework 2.0のプロジェクト作ればいいのか 分らなくて困っています。 新規作成でWindowsフォームアプリ選んでもフレームワークの 選択のところには普通の.Net Framework 2.0、3.0、3.5しかなく作れません。 ネット調べてみたんですが、2008ではできるとは書いてあるんですが 具体的な作成方法はなく、通常のWindowsフォームアプリではなく、 Compactアプリを選んでプロジェクトを作成する様に書いているのもチラっと 見たんですが、新規作成をしてもそういったプロジェクトが選べません。(ありません) 情報お願いいたします。
リークじゃなくてキャッシュしてくれてるだけじゃないの
ggrks .Net Compact Framework プロジェクト作成
どうせSDKはいってねええええええんだろおおおおおお
>>246 プロジェクト作るところに「スマートデバイス」って無い?
253 :
246 :2013/08/12(月) 16:06:45.82
プロジェクト作成でスマートデバイスってのが無いので困ってました。 調べたところ当方のVS2008スタンダードエディションでした。 プロフェッショナル以上じゃないとそれが無いのですね。 いろいろググったつもりだったんですがググり方が下手でした。 すみません。
一旦SJISエンコードされて文字化けた文字列を元のUTF8に戻す方法はないだろうか 具体的にはSevenZipSharpでMacZipを解凍したい
SevenZipSharpは詳しくないけどファイル名のエンコーディング指定できないの? DotNetZipだとAlternativeEncodingとかあるけど
自動でUTF8からSJISにされたなら、手動でSJISからUTF8に変換すればいけそうなものだが?
そもそもバケてるって言ってるから、実際どうなってんのか予測できないんだよな
文字化けてるってのは2種類あるからな まったくデタラメのデータに変わってるってのと、単にエンコードが違って表示化けしてるだけ これは後者だろ?前者だったら無理
>>255 色々ググってみたんだが7zで圧縮するときには直接オプションで指定できるものの
解凍時のエンコスイッチが7z.DLLにそもそもないっぽい
>>256 C#のstringとしてしかファイル名渡ってこないんで、UTF8->SJISで化けたものが
更に何らかの変換経てるらしくstringを一旦byte[]にして再変換かけてもより化けるだけだった
>>259 その何らかの変換を特定しろよ。使われてるエンコードなんて何種類しかないんだから。
C#のstringはunicodeだからUTF8->SJIS->Unicode変換されてるのかな、そうならその逆をすればいいし。
261 :
254 :2013/08/12(月) 16:45:37.81
あ、何らかのとは言ったけどC#の内部表現確かUnicodeだよな だからUTF8->SJIS->UCS-2と変換されてることになるのか
262 :
254 :2013/08/12(月) 17:02:16.73
今実験して惜しいところまでは行った ただ一部文字が化ける 確認できている化ける文字は'」'、'の'、'〜' 他は上手く行っているぽい
263 :
254 :2013/08/12(月) 17:10:44.22
あれこれ試してみたがこりゃダメっぽい 大人しくSevenZipSharp以外の方策考えてみる レスくれた皆ありがとう
」は0x300Dだからリターン0x0Dとして扱われてるんじゃない?
〜はウェーブダッシュ問題だろねー
266 :
254 :2013/08/12(月) 17:37:39.94
最後の悪あがきで元のファイル名調べたらとんでもないこと発見 Unicode合成文字が平気であった(ちゃんと?文字化けしていた さっきは見逃してたぽい) やはり再変換ではどうもならん模様
そりゃそだぜ そもそも写像先で元データの情報が保存されてたら 文字化け起こさないで変換できるってことになるからなぁ shiftJisとUTF-8と、異なる文字コードが存在している意味がないもんな
>>245 サーバーアクティベーションを使ってるならその動作で正しいよ
この場合基本シングルコールモデルだから
リモートオブジェクトが状態をもったらいけない
.NET 4.5 C# VS2012DEです フォームのことです ループさせるために自作コードから自作フォームのWndProc関数を呼び出したいのですが 肝心のウィンドウズメッセージをどうやって取得したらいいのかさっぱりわかりません 単純に調べて出て来ないのは代用出来る関数があるからというのはわかっています どうしたらいいでしょうか Win32api辺りを使わなければならないのでしょうか
意味が分からん 自分でメッセージループ書いてるってこと? ならGetMessageやらDispatchMessageやら色々Win32API使うが もしかしてApplication.DoEventsじゃないだろうな
>ループさせるために ループは素直にループで書いて下さい。
>>270 自分で作ったフォームを表示したいのか、例えばボタンダウンのようなメッセージ処理を入れたいのかさっぱりわからない
何をしたいのかはっきりさせてぐぐれ
言葉が足りませんでしたすいやせん Application.Run相当の処理を自作したいんです
.NET1.1時代の object返すコレクションとか邪魔なんだが AyyayList単体とかなら使わなければ住む話だが フォームの部品に〜Collectionてな感じで入り込んでるやつ
その辺は全部型付きコレクションだろ IEnumerableのことを言ってるのか
IEnumerable<T>じゃないのでむかつくというのならハゲしく同意だが
何のためにApplication.Run相当を作りたいんだろう。C++ならわかるけどC#で・・・
Form.WndProcのoverrideで解決しそうな予感
>>281 何か勘違いしてるんでしょ。
彼が筋が悪い人なのは質問文にも表れてる。
なぜかダメな人は自分が思いついた手段に固執するんだよね。
それが不適切だったり自分の勘違いだったりする可能性は想定してないらしい。
手段じゃなく目的を言えと誘導してくれてる人もいたのに。
んで、ダメな人に失敗の経験をさせることもなく本来の回答にも答えないと このスレの意義ってなんだっけ
回答者の自己顕示欲を満たす 質問者は(運が良ければ)回答を貰える
質問がわからなきゃ答えようがない
え、結局ウィンドウズメッセージどうやったら取得出来るの
→は?どういう組み方してんだよお前(聞かれてない)
→………とりあえずApplication.Run相当を作りたいんで(何故?)
→Win32api使え(正しい回答)
→既に終わったことに対し、その後に
>>283 が気取ってレス
組み方なんて人それぞれだろ
DoEventsじゃ駄目だったりするかもしれない
ただWndProcを直接呼び出して何するのかよくわからんが
>>287 終わったことにぐだぐだ言うぐらいなら、サンプルソース作ってやれよ
ゲームループの実装例が参考になるかもね
検索ワードは PeekMessage Application.Idle 辺りか
Application.Run相当ということは、別スレッドで新しいメッセージループを開始したいということじゃないのか? スレッド起こしてそっちでApplication.Runすればいいだけだが
GCのせいでデストラクタがまともに機能しなくて そのふざけた挙動に合わせるためにC++/CLIにまで ファイナライザなるものを導入する羽目になって
などと供述しており
その前にデストラクタに頼らないコーディングにしろよ・・・
C++CLIはもともとまともに使える代物ではないで あくまでグルー言語
297 :
デフォルトの名無しさん :2013/08/15(木) 22:05:05.32
C#でHttpWebRequest使って2chにPOSTで書き込むと 日本語が文字化けします C#内のstringの文字コードはutf-8で統一されてるのかな? HttpUtility.UrlEncode使ってURLエンコードしても文字化けします 何か対処法ありませんか
stringは2バイトユニコード。自分で変換しないとだめ
299 :
デフォルトの名無しさん :2013/08/15(木) 22:11:36.28
>>298 回答ありがとうございます
ということはutf-16ですか?
流れとしてはstringをbyte配列に変換してからshift-jisに変換して
最後にURLエンコードすればいいのでしょうか・・?
>>299 2chがsjisならそんな流れ。URLエンコードはPOSTならいらないんじゃない?
知ってる単語をただ並べるだけじゃなくて、よく考えろよw
Hey! Hey!
303 :
デフォルトの名無しさん :2013/08/15(木) 22:29:13.19
>>300 できました!!ありがとうございます
おっしゃるとおりURLエンコードいりませんでした
ラムダを使うとき、イベントハンドラ削除しないと メモリ開放されないの?
日本語でok
俺はデタッチしてるな。しなきゃいけないかは知らん
イベント発行元のライフサイクルがイベントハンドラーより長い場合は必要。 Application.Idleのようなstaticイベントの場合がそうだな。 Button.Clickみたいのは寿命がコンテナのformといっしょだから不要。 あと弱参照イベントなるものもあるので調べてみるといいよ。
完全に・メモリ・開放 頭痛がするからどっか消えてくんねえ?
イベントハンドラの削除はイベントの発行元が握ってる参照を外すだけで、 メモリを回収するわけではないからなぁ。 メモリ回収はあくまでもGCの仕事。 同じような勘違いにDisposeでメモリが減らないというのがあるな。
rxの入門サイトよんで勉強してんだけど いまいち利点というか、どういうとき使うのか分からん 具体的には、どんな時に使うと便利なの?
>>312 asyncによっていらない子になった
もともと関数型かぶれのための玩具みたいなもんで、
読みづらくなるから使わなくていいよ
複数のイベントを制御するのはasyncじゃやりづらくてRxが得意とするところだが Rxは構文に無理がありすぎるのでちょっとな 本当に需要があるならそのうちC#に自然な形で取り込まれると思うよ
asyncも勉強してみたけどイマイチ利点が分からん TaskとContinueWithじゃダメなの?
>>315 ContinueWithでループ書いてみな
yieldの利点がわからん GetEnumeraterじゃダメなの? と同レベルにはダメだな
要領が悪いというかなんと言うか
新技術はリリースされないうちは追いかけないことに決めた
俺は普及するまで使わない
string.format("{0:##-##}", 1234)→12-34 OK string.format("{0:##-##}", "abcd")→abcd NG なんでやねん 数値だけって不便すぎだろ
はぁ
え
マジで出来ないのか
そういやVB6やVBAには Format("abcd", "@@-@@")って書き方があったけど Microsoft.VisualBasicのFormatでもサポートしてないな。 余分で不要な機能とされたんじゃね?
正規表現でグループ化&検証してから再フォーマットしろってことだ
string.Format("{1}{2}-{3}{4}", "abcd".ToCharArray())
それは思いつかなかったw
参考にさせてもらいます
330 :
デフォルトの名無しさん :2013/08/27(火) 14:34:33.64
ちょっと変な質問があります。 あるクラスのあるメソッドを、文章で示すとき、Javaだと、 List#add(); のように クラス名#メソッド名 で書く習慣があります。 C# だとどうするのが一般的なのでしょうか?
List.add(); static好きな人 List::add(); Cから来た人
MSDNはList.add()
Javaがあんなんなのは、javadocとかの制限のせいだっけ?
>>332 これだな
Javaなんかどうでもいいよ
Docと言えば、XMLDocumentの<code />を作るためにサンプルコードに///を簡単に入れる方法ってない?
ただのコメントアウトだったらCtrl+K+Cでできるけど///の方法がわからん
>>334 スニペットならとおもったけど毎行処理の方法が分からなかった。
ReSharperとかにありそうだが Alt+ドラッグで行頭選択して挿入で行こう
338 :
330 :2013/08/27(火) 21:32:13.79
みなさんレスありがとうございます。
>>332 をよくみるので、 List.add() で行くことにします。
HttpClientで同時接続数を制限したいのだけどうまい方法無いかな 出来れば↓みたいな感じでTaskは返すけどまだリクエストはまだしないようにしたい public static Task<HttpResponseMessage> addRequest(...)
TaskCompletionSourceでごりごり実装
ありがとう、まさにそのクラスが必要でした
質問があります delegate void testfunction(int b) に function(int a, int b) みたいな関数を渡すときに、先にaだけ渡しておいて コールバック先からbだけもらうみたいなやり方ってできますか?
そりゃできるけど new testfunction(b => function(3, b));
344 :
デフォルトの名無しさん :2013/08/28(水) 15:23:55.34
マイフレーム呼ぶ Update() 関数の最初の一回だけ Update() ではなく UpdateInit() を呼び台のですが、 IsUpdateCalledみたいな追加のメンバー変数などを追加できません クラスの外からメソッドが呼ばれたかどうか、もしくは一回だけメソッドを横取りするような処理はどう書けばいいでしょうか
変数、関数追加せずに判別したいっていうなら、 馬鹿っぽいけどファイルやレジストリに値書き込んでチェックしたら?
346 :
344 :2013/08/28(水) 17:54:38.14
C#には関数内static変数がないので不可能ですと言っておけ
ソースが見れればほかの方法も見つかるかもしれないが、これだけの情報じゃ
>>345 だろw
マイフレームというのがそもそも俺用語っぽいしな
ヨーガフレイムなら知ってるけどマイフレームなんて知りません。
5秒ぐらい悩んだが毎フレームか
なるほど。よくわかったな
どっちにしろ、呼ぶ側でデリゲートでも使って挿げ替える方が簡単じゃないのかなと
SemaphoreSlimがシグナル状態になったときに コールバック関数を呼ぶにはどのように書けば良いですか?
4.5ならWaitAsyncにContinueWith 4なら中でWaitするTask作ってContinueWithとか それ以前ならThreadPool.RegisterWaitForSingleObjectとか
>>355 、356
WaitAsyncというのがあったのに気が付きませんでした。
Taskを使うのは初めてですが、やってみます。
SemaphoreSlim.AvailableWaitHandleを使うと、
シグナル状態にはなるが、カウントダウンしないとのことで
ThreadPool.RegisterWaitForSingleObjectに渡したときに
Waitと同じようにカウントダウンさせるにはどのように書けば良いですか?
WaitOrTimerCallbackの中で改めてWait …面倒な上にWaitに失敗する可能性があるのか ナシだな
CancellationToken.IsCancellationRequestedを参照してスレッドをキャンセルする場合 Task.IsCanceledをTrueの状態で終わらせるにはどうしたらいいですか? TaskのキャンセルにThrowIfCancellationRequested();は必須なのでしょうか? var source = new CancellationTokenSource(); var token = source.Token; Task t1 = Task.Factory.StartNew(() => { Thread.Sleep(500); source.Cancel(false); }); Task t2 = Task.Factory.StartNew(() => { try { //token.ThrowIfCancellationRequested(); if (token.IsCancellationRequested) { break; } Thread.Sleep(100); } }, token); Console.WriteLine(t2.IsCanceled); // IsCancellationRequested 版だとRanToCompletion // ThrowIfCancellationRequested() 版だとCanceled
Task.IsCanceledの解説読めよ
あそこ分かりにくいよな なんで例外投げなきゃいけないのかとか
Cancelが呼び出されたがキャンセルする前に正常終了するケースがあるから仕方ない
XMLパーサーって性能いいんだな DataConstractSerializerのパースが独自のテキストフォーマットの1.5倍程度の遅延で済んでるわ
XML遅い遅い教が火病起こすのでその話は中止!中止です!
1.5倍が早いか遅いかはしらんが それはXMLパーサが性能いいんじゃなくて、お前の独自テキストフォーマットの処理が遅いんじゃまいか
行ベースの偽iniファイル風味のフォーマットだから遅くなりようがない DataContractAttributeを使うことの生産性を見たかったがこれなら任せても良いレベル ちなみにJSONはファイルサイズは独自フォーマットに迫るが パースが遅いから通信コストを考慮しないケースだと無しだった
あーこれは遅いini読み込みだ
くだらん煽りだ
だから中止しろと言ってるだろマヌケが
あ
C#の寿命は後何年ぐらいだと思いますか? どうせまたCOMみたいになるんでしょう?
COMみたいということは当分は現役だと言うことだな 息の長いことだ
ずっと安泰だな
COMが終わる気配が無い
教えて下さい .net3.5がインストールされていないと中断する処理を追加したいと思います その場合、.netがインストールされていないとその判定部分のすら動かないと思うのですが、どのようにプログラムを組めばよいでしょうか。 よろしくお願いします
ネイティブで書いたりwshで書いたりすれば?
MSI作ればいいじゃない
マウスイベントを自アプリのウインドウの後ろにある別アプリに透過させるにはどうすればいいですか?
自分の後ろにあるウィンドウを取得して拾ったイベントを そのまま投げればいい
いやそもそも拾わなければいい
まるでトンチだな
透明ウインドウだろ?気にしなくても透過
383 :
デフォルトの名無しさん :2013/09/04(水) 12:44:06.67
テキストアドベンチャーを作ってみたく、 目パチアニメーションのために EyeMというImageのコンテナを作って、下のようなコードを書いたのですが EyeM.Source = new BitmapImage(new Uri(AppDir + @"\CG\1.png")); System.Threading.Thread.Sleep(500); EyeM.Source = new BitmapImage(new Uri(AppDir + @"\CG\2.png")); System.Threading.Thread.Sleep(500); EyeM.Source = new BitmapImage(new Uri(AppDir + @"\CG\3.png")); System.Threading.Thread.Sleep(500); 1.pngと3.pngしか表示されません なぜ2.pngが表示されないのでしょうか? おそらく簡単な理由なのでしょうが、 ググっても目パチアニメーションのサンプルが見当たらず 識者の方、よろしくお願いします
systen.timer使え sleep使うならスレッド立てろ
画質とかにこだわらなければ動画gifで逃げるという手もw
refreshしないからだ
WPFみたいだから明示的にRefreshすることはないな アニメーション使って切り替えるのが本来的なやり方 .NET4.5とかVS2012とかでその辺のベストプラクティスが変わってるかどうかは知らんが
Storyboardだな
C#でVB.NETみたいにWithEventsで宣言、メソッドにHandles追加みたいなの出来ない? コード中でイベントハンドラ追加していくのなんか嫌なんですぅ。
>>390 C#にその仕組はない。
でもインテリセンスでスタブが自動で作成されるからVBとほとんど同じ感覚で
コーディングできると思うけど
開発環境は既に言語の一部であるという説、あるある
むしろvb.netのアレ ハンドラの追加がどのタイミングで行われるのかパッと見で分からないから 個人的にすごく気持ち悪い
394 :
393 :2013/09/04(水) 20:20:17.40
あ、待って
今なんかすごい勘違いしたレスをした気がする
ごめん
>>393 は忘れて
.netのイベントの実態(デリゲート)を隠すvb.netのやり方は池沼向け
C#だって通常はイベント用のデリゲートのバッキングフィールドは隠蔽されてるわけで そこはあまり違わないと思うけどね。 C#はイベントを内部からはデリゲートに見せかけるアプローチを取ってるけど、 VBは旧VBからの流れでイベントはあくまでイベントという扱いになってるという違い
VBは嫌いだが、VBのアレは宣言的でいいと思う
C#のイベントとデリゲートの関係は
>>396 が指摘してる変な構文糖衣のせいで非常にわかりにくい
float s1 = 1.23f; double d = s1; float s2 = (float)d; こういうことをした場合、s1とs2は1ビットも違わず同じ値になることは保証されますか?
いいえ
>>398 doubleもfloatも基数2の指数表現だから原理的にはfloat→double→floatで
情報が失われることはないはずだと思うんだけどね。
実際に試してみて一個でも反例を見つければ
>>400 は撃破できる
で見つかったのかよ。
うへえ、CygwinのAPIってcdeclかよ HGlobal使わないとまたAccessViolation出るな
intを1ずつ増やしていってポインタ使ってfloatにキャストして…を2^32回試すだけだから そんなに時間かからなそうだな
それじゃ整数値しかわからないじゃん
>>405 だからポインタ使ってfloatにキャストするって言ってるでしょ
ビット列をそのままfloatと読み替えるの
>>399 同じじゃないの?
・floatとdoubleはIEEE 754に従う(4.1.6)
・float→doubleはロスなし(6.1.2)
・double→floatは最も近いfloat値に丸められる(6.2.1)
この言語仕様で、同じ値にならないケースが思いつかない
[StructLayout(LayoutKind.Sequential)] struct I4R4 { [FieldOffset(0)] public int I4; [FieldOffset(0)] public float R4; } ビット列を読み替えるのはポインタを使う以外にも 確かこういう構造体(というか共用体)を使ってもいけたはず
>>408 訂正 LayoutKind.Explicitの間違い
BitConverterなんてのもあるよ
もしかしたらマイナスゼロとか無限大、非正規化数あたりに何か潜んでいるかも
なんかいっぱい有ったわ 2^32個中8388606個 合ってる?
>>413 多分NaN同士の比較を考慮してないだけだ
C++で同じ事やったらint全部通った
>>413 個数要らんから、おかしい奴のビットパターン (s1, d, s2) 出してくれよ...
試した NaNの範囲内ではビットレベルで変化することがある 01111111100000000000000000000001 が 01111111110000000000000000000001 になったり
じゃあ俺も一つ 11111111101111111111111111111111 が 11111111111111111111111111111111 になったり
.NETは精度を維持するという目的ならdecimal使えってなってるんじゃなかったか
>>419 それは土方にとっての10進数の精度な
decimalは表現できる範囲が狭い
decimalってクソ遅いよ 誤差や有効数字を理解していないドカタのための機能
>>421 そのドカタ以下の知識で語ってるのがバレてますよ。
誤差や有効数字を理解しているから decimalを使うんじゃないの? まぁ今回のケースはdecimal関係ないから どうでもいいけど
一般人にとっての精度というのは せいぜい電卓と同じ結果という程度だからいいんでない ただ電卓とも微妙に違うんだよな decimal num, rate, ans; num = 3600000M; rate = 0.3777777777777777777777777777M; ans = num * rate; Console.WriteLine(ans); num = 3600000M; rate = 0.37777777777777777777777777777M; ans = num * rate; Console.WriteLine(ans); 結果 1359999.9999999999999999999997 1360000.0000000000000000000001
そんな細かい事を気にするなハゲるぞ
これは剃ってんの!
小数点は使用禁止にしようぜ
まじでそう思う。小数点発見したやつは万死に値する
小数点無かったら、何割何分何厘とかの表記になるんか
円周率は3でいいな
万死もなにも発見したやつは、もう死んでるだろう。
固定小数点でおk
>>432 だから、あと 9999回市ねっつーことだろ
1つのパンを3人に分けなくてはならないときは あとパンが2つ手に入るまで待てばよい。
飢え意図
一方ロシアでは分数を使った
無理数どうするんだよ
分数ならいけるな
>>339 見てちょっと試してみたんだけど
HttpClientって、ServicePoint.ConnectionLimitを無視してね?
HttpClientとServicePointは何か関係があるのか?
>>441 msdn.microsoft.com/en-us/library/system.net.http.httpclient(v=vs.110).aspx
ドキュメントによると、HttpClientはデフォルトではHttpWebRequestを使う、ってある
で、HttpWebRequestは、ソケット通信にはServicePointの設定を使うはず
実際、同じくHttpWebRequestを使うWebClientでは、ServicePoint.ConnectionLimitの値が
(各ホストに対する)最大同時接続数として機能してた
だから、HttpClientでも当然そうだと思ってたんだけど
443 :
442 :2013/09/08(日) 00:36:40.97
すまん、解決した ServicePointはHttpClientのインスタンス毎に管理されてるっぽい 同じインスタンスを使いまわしたら、同時接続数が ちゃんとConnectionLimitの値に制限されることを確認した
非同期で走らせたいときはtaskで同期HttpClient呼んだら 非同期なのかなぁ
445 :
名無しでいいとも!@放送中は実況板で :2013/09/09(月) 00:27:58.56
チェックボックスをONにしたら自作クラスのインスタンス生成、 OFFしたら明示的に解放したい Dispose()で解放すればいいっていうとこまでは分かったのだが どこ調べてもDispose()をオーバーライドしてマネージメント/ アンマネージメントリソースの開放を行うとしか書いておらず 具体的にそのリソース解放処理のコードが書かれていない どう書けばいいのですか?
>>445 >Dispose()で解放
いいえ、違います
メモリの開放はあくまでもGC
448 :
名無しでいいとも!@放送中は実況板で :2013/09/09(月) 00:43:54.84
では明示的に開放したい場合はどうしたら?
>>445 ガベージコレクションしってっか?
解放可能な状態にしとけばそいつが自動で解放するから。
解放可能な状態にするとはthis.hoge=nullでインスタンスへの参照を全てクリアする事。
>>448 オブジェクトが参照されないようにして
System.GC.Collect()
451 :
名無しでいいとも!@放送中は実況板で :2013/09/09(月) 00:48:54.46
そのガベージコレクションとやらが信用できないので明示的に開放したいのだが null設定したタイミングでGCが解放してくれるのですか?
Cでいうところのnew/deleteのdeleteに相当するものはないのがC#
言語組み込みのGCを怪しむくらいかつかつにメモリを使うなら、 GCのない言語で自分でメモリ管理した方がいいんじゃね 無料のGCライブラリだってあるんだから、普段はそれ使って、 自分で管理したいとこだけmalloc/freeするとか
455 :
名無しでいいとも!@放送中は実況板で :2013/09/09(月) 01:09:49.83
なんかモヤモヤしたのが残ってるけどありがとうございました
モヤモヤが残ってるのは、たぶん解放っていう処理の具体的なイメージを理解せずに VBer的に漠然と解放って言ってるからだと思うよ。
VB6は参照カウンターによって a=Nothing で明示的に解放できたわけだが
GCなんて洒落たものを積んでなければ そこで解放するしかなかンべ
460 :
デフォルトの名無しさん :2013/09/09(月) 10:45:47.06
VBでNothingの解放使ってたのは、 昔のVBAで一部のライブラリにバグがせいじゃなかったか
COMオブジェクトの事なら明示的な解放になると思う
classじゃなくてstructで作れよ 解放時に自前で全部初期化して
フォームにファイルをドラッグして任意の処理をさせる為のシンプルなフレームワークを作ってみたんだけど、 何かリスクのある所はありませんか?(続く) // 【嫌儲民用ファイル一括処理処理フレームワーク】 using System;using System.IO;using System.Windows.Forms; partial class Form1{ private void kenmomen( string[] filenames ){ // ♪♪コピペゾーン♪♪ } protected override void Dispose( bool disposing ){ base.Dispose( disposing );} private void de( object sender, DragEventArgs e ){ if( e.Data.GetDataPresent( DataFormats.FileDrop ) ) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None;} private void dd( object sender, DragEventArgs e ){ string[] fns = (string[])e.Data.GetData( DataFormats.FileDrop, false ); if( fns.Length > 0 ) kenmomen( fns );}} static class Program{ [STAThread] static void Main(){ Application.EnableVisualStyles();Application.Run( new Form1() );}} public partial class Form1 : Form{ public Form1(){ this.AllowDrop = true;this.DragDrop += new DragEventHandler( dd ); this.DragEnter += new DragEventHandler( de );}}
ドラッグドロップされたらkenmomen( string[] )にファイル名の配列を渡して // ♪♪コピペゾーン♪♪にコピペした動作をさせるフォームです。 運用としては、下記のようなコードを// ♪♪コピペゾーン♪♪のところにコピペしてもらい、kenmo.csのファイル名で保存、 コマンドプロンプトから"csc.exe kenmo.cs"を実行してexeにして使ってもらう。 みたいに考えています。 // D&Dされたファイル名をそのフォルダのkenmomentest.txtに出力する // kenmomentest.txtは上書きされるので注意 string path = Path.GetDirectoryName( filenames[0] ); string ofn = path + @"\kenmomentest.txt"; if( filenames.Length > 0 && Directory.Exists( path ) ) { using( StreamWriter w = new StreamWriter( ofn, false, System.Text.Encoding.GetEncoding( "Shift-Jis" ) ) ) { foreach( string s in filenames ) w.Write( s + System.Environment.NewLine ); } }
こういう貼り方すると読みにくくてまったく見る気がしないから知らん 一つ挙げるならファイル名がshiftjisにない文字使ってたら出力テキストが化ける
>>465 ファイル名かありがとう!
> こういう貼り方すると読みにくくてまったく見る気がしないから知らん
みんなVSの自動整形使ってるかと思ってたから変に手を入れなかったけど
次から整形して貼ります。
>>465 これは
>>464 のStreamWriterの引数encodingがS-JISだからだと理解しました。
間違っていたらすみませんが、再度ご指摘お願いします。
>>467 はい。
>>463 はもちろん沢山の人に見て欲しいんだけど、整形して貼りなおすと却ってウザいよね?
>>468 @ddでkenmomenのエラーハンドリングは不要?(一応、kenmomen.exeは動作を停止しました。は出るけど。)
AFile.WriteAllLines(path, filenames, Encoding.UTF8);を使うと楽。
Bメンテナンス性が低い。
フレームワークとユーザーコードが分離されない為、バージョンアップが面倒。
普通ならこのフォームをDLLにして配布&kenmomenをオーバーライドさせるけど、
cscって事はVisualStudio持ってない人も対象にするの?
だったらコペペゾーンをexe,bat,vbs等、コピペ時のコマンドとして指定させる方が良いかな。
GetData()ってnull返すことあったような気がするんだがどうだっけ つうかそれとは関係なしにこうゆうのこそdelegateの出番だと思うのだが
>>469 ,470
ありがとうございます。
ddメソッドでエラーが出るなんて想像もしていませんでした。
GetDataはnullを返すのでddが落ちる可能性がありました。
MSDN引いてもDragEventArgs.Data.GetData( string, bool )が例外をスローするのと、
DragEventArgs.DataがIDataObject Interfaceを持っていることしか見つけられませんでした。
deの最中にファイルを削除やネットワークの切断、親フォルダの権限で削除以外拒否拒否する程度では
例外発生しなかったのでとりあえず全部の例外握りつぶすしか思いつかなかった的な実装です。
private void dd( object sender, DragEventArgs e ){
try {
string[] fns = (string[])e.Data.GetData( DataFormats.FileDrop, false );
if( fns != null && fns.Length > 0 )
kenmomen( fns );}
catch( Exception ){
}}
行数減らす為に中括弧の置き方など気持ち悪いのはお許し下さい。
さらに読みにくくなってワロタ
473 :
471 :2013/09/09(月) 16:00:58.89
コピペに失敗しました。
スレの皆さんすみません、後ほど落ち着いて再投稿します。
>>469 > @ddでkenmomenのエラーハンドリングは不要?(一応、kenmomen.exeは動作を停止しました。は出るけど。)
場数をこなしている方と入門者の差がよく分かりました。
> AFile.WriteAllLines(path, filenames, Encoding.UTF8);を使うと楽。
一行で書けるんですね。覚えました。
> Bメンテナンス性が低い。
> cscって事はVisualStudio持ってない人も対象にするの?
そうです。
アップローダー等を使わずにテキストベースでアプリを配布する方法として考えました。
> だったらコペペゾーンをexe,bat,vbs等、コピペ時のコマンドとして指定させる方が良いかな。
プログラム内からコマンドを実行させるという意味ですね。
その方が分かりやすいかもしれませんので、ちょっと試してみます。
474 :
463 :2013/09/09(月) 16:23:20.74
>>463 の質問ですが、デリゲートを使っても20行程度に収まるようなら
大幅書き換えする可能性がありますので一旦質問を取り下げさせて下さい。
>>470 delegateを使えばテキストファイルにC#の命令を書いて実行させられるような気がしてきました。
>>472 すみません。
私もモニターの前で倒れそうになりました。
テキストファイルをプラグインぽく使う場合はダイナミックなアセンブリがどうのこうのでかなりめんどかった記憶 C#4.0からはなんかその辺楽になる機構新設された気がするが気の所為かもしれない
>>474 テキストじゃデリゲート無理だね。
メモ帳でコーディング難しいだろって思ったんだけどコピペゾーンはこっちから提供するの?
>>475 テキストをアセンブリとして扱う方法kwsk
4.0で〜はMEFの事かな?
CDandDFile dd = new CDandDFile(); dd.wndDDArea = this; dd.DD += (sender, e) => { foreach(string strFile in e.liststrFiles) { if(IsPictureFile(strFile) { picturebox.Image = LoadImage(strFile); return; } } }; 例えばこんな感じで使えるようにクラス作っておけば提供形式はライブラリプロジェクトでもDLLでもcsファイルでも構わない
ゴメンよく分からない
>コマンドプロンプトから"csc.exe kenmo.cs"を実行してexeにして使ってもらう。 ってあるから違うだろ。csファイルをアセンブリとして扱うorビルドして実行するってのがしたいこと。
確かにbatファイルへのドロップにしてコマンドライン引数からファイル一覧を得るのが素直なやり方だろうな。 batは好きじゃ無いけど。
>>477 俺の曖昧な記憶ではCodeDomでアセンブリ作ってプラグインDLL作成
それを読ませる時に信頼がどうのこうのを軽減してくれるのがMEFだったかな
CodeDom自体がひっどい面倒だった記憶がある
>>484 System.CodeDom.Compiler.CSharpCodeProvider.CompileAssemblyFromSource()
にソースコード文字列を与えて帰ってきたCompilerResult.CompiledAssemblyを
リフレクションで実行するだけなら簡単だよ
487 :
463 :2013/09/09(月) 20:57:13.64
すみません、
>>464 のコードサンプルが悪すぎたのでご迷惑をおかけしました。
基本部分の書き換えをする前にご説明できる部分だけレスしておきます。
>>476 > メモ帳でコーディング難しいだろって思ったんだけどコピペゾーンはこっちから提供するの?
はい。
組める人が提供して、組めない人がコンパイルを想定しています。
>>478 > 例えばこんな感じで使えるようにクラス作っておけば提供形式はライブラリプロジェクトでもDLLでもcsファイルでも構わない
例えば基本部分を先にコンパイルしてもらって、実装はクラスライブラリとして別コンパイルという方法も考えたのですが、
やや煩雑で、提供される側が理解できない、万が一バージョンアップした場合に混乱すると考えました。
>>480 ,482
> バッチファイルでも済むレベルの話
wsfなら可能な感じではあります。
ファイル名の列挙に限らず、
>>464 のようなコードをいくつか公開して必要なexeを提供できたらと思っています。
>>483 正しい用語を使えなくて申し訳ありませんでした。
>>463 のコードは共通で、kenmomenメソッドの書き換え部分だけレスすれば目的のexeが手に入る
そんな環境を整えたかったのです。
>>486 適当すぎました。反省しています。
とはいえ、複数フォルダに存在する複数ファイルのドラッグアンドドロップに興味はあります。
ショートカットのドラッグとかかなと見当をつけていますので、後で色々試して見ます。
セキュリティ的にやりたくないなぁ コード理解してないひとにコンパイルさせるんでしょ? 悪意のある人がレスすることは想定してるの?
確かにセキュリティ的にはマズイね。
>>487 検索結果なら複数フォルダのファイルをドラッグ出来るよ。
今回は大丈夫だろうけど、実装(エクスプローラ)ではなく仕様に基づいて作る事を心掛けないと
相性問題と言われるバクを仕込んじゃったりする。
俺は自由度が増していいと思うな セキュリティなんて単語使うレベルの話じゃないよ。そんな心配だったら命令のホワイトリスト 作ってそれ以外が含まれてたらエラーにするとかそんな単純な方法でもいいし どうせ普段の開発でもセキュリティを高めるようなコーディングなんてしてないし知らないだろ? 俺は数えるほどのケースしか知らないし、セキュリティ求められたら俺には出来ないって答える
C#をスクリプトにするなんて作る側からしたら面倒なだけだろ 面倒だからってどうせVS使って書くんならdllで配布するのと変わらないし 自由度というならIronPythonやLuaでも組み込んだほうがよっぽどいい
プラグインから他のライブラリを呼び出したい場合とかどうするんだよ ネイティブコード使いたいときは? 管理も面倒だし、正直プラグイン書く側にとっても使う側にとってもデメリットしかないと思う
2chのビューワーもスクリプト書けて便利だろ。ないよりあったほうがまし
>>493 自分で書いてカスタマイズするのが目的なら俺ならスクリプト言語を組み込んでほしい
VSなしでC#とか悪夢
VS使えよ
要件が漠然としてるから最適解を探すならこれぐらいの情報がないと。 0概要 1フレームワークの作成者 2プラグインの作成者 3利用者 4アップローダーが使えない理由(テキストじゃなきゃいけない理由) 5プラグインのバリエーションと更新頻度 6フレームワークとプラグインの配布方法
最適解探してないからどうでもいい
>>496 朝方になってきたのでざっとしか書けませんが。
> 0概要
下記要件を満たす仕組みの構築実験。
・ファイルをドラッグアンドドロップする動作を起点に、C#で記述可能な処理を実行する
アプリケーションを2ちゃんねるの参加者に提供する。
・処理内容の検証が可能であること。
> 1フレームワークの作成者
私しかいないと思いますが、限定されません。
> 2プラグインの作成者
私しかいないと思いますが、限定されません。
> 3利用者
2ちゃんねる型掲示板でテキスト処理をしたい不特定多数の参加者です。
> 4アップローダーが使えない理由(テキストじゃなきゃいけない理由)
exeの処理内容の透明性、安全性が少しでも担保できればと思いました。
PerlやPythonは実行環境を整えるのがハードルになっている気がしました。
WSHやVBSは私が使えません。
> 5プラグインのバリエーションと更新頻度
バリエーションについては要望があれば随時提供、更新します。
今現在要望がある訳ではありません。
> 6フレームワークとプラグインの配布方法
適宜フレームワークを1レスで収まる形で書き込み。
プラグインを随時書き込み。
程度にしか考えていません。
雛形はできるだけ複数レスに分けたくないので行数を切り詰めます。
499 :
463 :2013/09/10(火) 03:41:05.32
500 :
463 :2013/09/10(火) 03:42:31.98
private void Form1_DragEnter( object sender, DragEventArgs e ) { if( e.Data.GetDataPresent( DataFormats.FileDrop ) ) { e.Effect = DragDropEffects.Copy; } else { e.Effect = DragDropEffects.None; } } private void Form1_DragDrop( object sender, DragEventArgs e ) { try { string[] fns = (string[])e.Data.GetData( DataFormats.FileDrop, false ); if( fns != null && fns.Length > 0 ) { kenmomen( fns ); } } catch( Exception ) { // ここでスローされる例外について分かるまで全て握りつぶす } } }
501 :
463 :2013/09/10(火) 03:45:25.27
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run( new Form1() );
}
}
public partial class Form1 : Form
{
public Form1()
{
this.AllowDrop = true;
this.DragDrop += new DragEventHandler( Form1_DragDrop );
this.DragEnter += new DragEventHandler( Form1_DragEnter );
// コンパイルエラーが出力されないための記述
o1 = o2 = o3;
}
}
♪♪コピペゾーン♪♪の行に下記のようなコードを上書きしてもらう運用を考えています。
batで書けないコードをさっと考えてみただけで、こちらについては別の機会に自力で吟味します。
// ファイルをドラッグアンドドロップした回数を数える
o1 = o1 == null || (int)o1 >= int.MaxValue ? 1 : (int)o1 + 1;
MessageBox.Show( o1.ToString() );
1行目は
>>483 でのご指摘に対応して下記に差し替えるつもりが間違えて貼り付けました。
// 【嫌儲民用ファイル一括処理アプリ雛形】
>>465 ,469,480,482,486
>>464 のコードは、やりたい事の説明用に書いたもので今回の質問の対象ではありませんでした。
きちんと書かなかくて本当にすみませんでした。
もちろん、指摘して頂いた悪い書き方はいずれ犯す間違いでしたので非常に助かりました。
>>489 検索結果からのD&Dは全く想像できませんでした。
回答される方と質問している私のレベルの差がはっきり見えて感動しています。
>>488-490 確かにコードを貼る者の責任は重いです。
ですから雛形部分にリスクがあってはいけないのでここで質問させて頂きました。
処理の実装部分は、Cドライブをフォーマットする悪質なコピペと同程度の危険性では
ないかと思いますが、C#ならではの危険性もあるでしょうか。
>>486 以前ソフトバンクの本片手にLuaとC++を連携させてみた事があるのですが
C#だとこんなに簡単に実装できるのですね。
CreateCompiler()は互換性の為に残されている状態らしいのですが、
代替記述が見つけらなかったのが心残りです。
ReferencedAssemblies.Addが不足している時にCompiledAssembly.GetTypeで例外が発生するのですが、
何が不足しているかCompilerResultsのプロパティから探すのが大変です。
そんな訳でまだまともに動かせていませんが、いつか色々遊んでみたいです。
>>497 ちゃんと説明しなかった私が悪いのでそうおっしゃらないで下さい。
特に
>>463 からリスキーな部分を減らしたい理由は丁寧に書くべきでした。
皆さん、ここまで連投すみませんでした。
せっかく
>>496 作ってくれた人いるのに根本的に何も変わってないじゃん。実用性ゼロだよ
pastebin.comみたいな単純サービスすら使う能力ないならプログラミング諦めた方がいいと思うw
プラグインコードとフレームワークコードをダウンロード ↓ VSか何かでビルドしてEXE作成 ↓ 利用 こういう形になるのかな。確かに実用性ゼロ 素直にビルドしたツールをソース付きでうpできる形か、プラグインコードをうpしたら鯖が自動的にEXE作って提供する形にしろよ
低能力者の浅知恵って感じ
こういうの誰でも一度は考えるよなww気持ちはよくわかる もしかしてすごいアイデアなんじゃないかという思いと、それを実現できる 面白そうな道具を見つけたことによって周りが見えなくなってるんだろう
>>503 cc.CompileAssemblyFromSourceは
cscp.CompileAssemblyFromSourceでいけたわ。
だから警告出てる行は不要。
やっぱテキスト縛りが厳しいな。
Form1.kenmomenはvirtualにして派生クラスのソースを提供が無難かなぁ。
class プラグインはこんな感じ:Form1
{
protected override void kenmomen(string[] filenames)
{
処理
}
}
CodeDomは行数増えるからやっぱcscでいいと思う。
batにしておけば利用者の負担も軽そうだし。
スクリプトじゃ汎用変数が難しいし。
>>504 まだ
>>486 のコードが咀嚼できていないので私がここでソースを出すには早いと判断しました。
初心者が身の程をわきまえず上級テクニックに手を出して延々質問するのは避けたいと思います。
私も興味はありますが、私ではなく
>>477 さん達向けの話題だと思っています。
>>506 こういう形です。
連投規制中だったので、他板で準備しておきました。
http://ikura.2ch.net/test/read.cgi/infosys/1367318453/165-169 > 素直にビルドしたツールをソース付きでうpできる形か、プラグインコードをうpしたら鯖が自動的にEXE作って提供する形にしろよ
実行する側だけではなく、提供する側も自衛手段を考えていいんじゃないかと。
exeで提供してしまうとexeとソースの同一性が不透明になるのと、
アルゴリズムだけではなく、実行ファイルの安全性も保証しないといけないのが重いですね。
例えば再拡散後のexeが汚染されていた場合、私がアップしたexeと汚染されたexeのバイナリの違いが
挙動の違いにつながることの証明を県警のおまわりさんに説明するのですら難しいと思います。
逆に私のマシンがウィルスに感染していたとしても、テキストでの提供であれば使う人への感染リスクは最小限に抑えられます。
>>507 ,508
そうですよね。
コンパイル処理をbatファイルで提供して説明の手間を減らしても、色々障害は山積みだと思います。
やるからには1つ位アプリの提供をしてみたいものです。
>>509 ありがとうございます、おっしゃる通り書き換えて警告が消えました。
CSharpCodeProviderを使う方法はparam.ReferencedAssemblies.Addを絞ることで
提供機能を絞る事ができるのも大きなメリットだと感じています。
CSCPを使うコードについてはまだまだ分からないことだらけですので、
失礼がないよう私はここから自習します。
こりゃ手遅れな人だわ
>>511 お目汚しすみませんでした。
私も499〜のコードに拘っている訳ではありませんので、
次の質問はこのスレにふさわしいスキルを身につけてからにします。
これでお許し下さい。
vbscriptかjavascriptにやらせろよ・・・
>param.ReferencedAssemblies.Addを絞ることで 提供機能を絞る事ができ・・・ ないよ、リフレクションあるから。
巨大なVisualStudioインストールさせられてまで便利と思う嫌儲民がどれだけいるだろうか… あっSharpDevelopなら小さいから解決だね!
>>513 実際にに低能なのでvbscriptでは想定してる実装を組める気がしませんでした。
>>514 そうなんですね。
理解してない事を書き込んで本当にすみません。
>>515 いや、XP以降?OSに標準で入ってるコンパイラ使う想定です。
「伸びてると思ったら香ばしい奴が湧いてた」とか叩かれて辛い思いをするのは
確定しましたので、とりあえず
http://kohada.2ch.net/test/read.cgi/pcqa/1376457813/45 これのkenmomenメソッドに俄が見てもばれないような悪意のあるコードを
思いついたら教えて下さい。
それ以外はレスを付けませんが、読むたび頭を下げていると思って下さい。
親切にして頂いたみなさんもそうでないみなさんもお相手頂いてありがとうございました。
VBS例。↓をテキストファイルに保存して拡張子vbsに。そのvbsにファイルをD&Dで実行 Option Explicit Dim args, arg Set args = WScript.Arguments For Each arg In args Call kenmomen(arg) Next Sub kenmomen(filepath) コピペゾーン♪ End Sub
つうかさ、そもそもプログラム書ける奴対象なんだろこれ? それでなんで開発環境の一つもないのが前提なってんの?
>アプリケーションを2ちゃんねるの参加者に提供する。 すべての人対象だろ
すべての人がC#で書けたら俺ら失業だな(笑 つーかコピペゾーンで何させる気かしらんけど、 処理中核書ける奴ならその外側のフレームワーク()なんぞ5分で書けるわ 百歩譲ってスニペットとして提供されるなら使わんでもないか?
どうせ2ch流出ファイルを見てて思いついたアイデアだろ
ほっとけばいいのに
あるクラスでしか使わないイベント引数クラスってそのクラススコープで定義する? 慣習とかあるのかな?
そのほうが解りやすいから俺はそうしてる
意味が分からん クラススコープって普通はprivateのことだよ? プライベートなイベントなんかわざわざ使うの? クラス外から見えるイベントのイベント引数を内部クラスにするかどうかという意味なら、 クラスの外に出さないと規約違反だね
>クラススコープって普通はprivateのことだよ? 意味が分からん
あーこれは荒れますわ 自分が相手より少しでも大人だと思ったら黙ってね
>>525 >クラスの外に出さないと規約違反だね
意味が分からん
史上最低地上最強のゴミ虫を自負する俺なので続けます
糞ワロタ。初心者スレでやれよ
>>528 原則、内部クラスをクラスの外に見せるのは避けるべしという
MSのガイドラインがあるんだよ
まあ守ってねえけどな
そんなクラス.NetFrameworkにいっぱいあるけどなぁ
原則なんておっさんの小言より守られないもんよ
いっぱいはないと思うがw Windows Formのコントロールの一部とか、1.0の頃に設計されたほんの一部のクラスだけじゃないの。 だいたい、ガイドラインにあろうがなかろうが、ネストされたクラスをpublicにするなんて 普通はやりたいと思わないよ
>>534 確かにnamespaceで分けられてるな。。。
>>537 System.Collections.GenericのIEnumerator<T>さんたちに謝れ
>>539 それはむしろわかりにくくするのが目的だろ
分かりやすさという観点がいつ出てきたのかは知らんが、目的はforeachのパフォーマンス改善だ
>>542 なんでこの文脈で列挙子に構造体使うそもそもの目的が出てくるんだよw
どう考えても型をネストしてる理由の話だろ
パフォーマンスって何のことか分からんけど、 ネストした型を使うのはprivateメンバにアクセスさせるためなんだろうけど、 普通にinternal使うのではご不満だったのかね
めっさ不満です
>>544 些細な違反を避けるためにカプセル化を半分破るなんて本末転倒
ガイドラインでネストした型を見せるのを禁止してる理由は「わかりにくいから」であって、
列挙子の型はできれば隠したいものなんだからネストでいいでしょ
だいたい、列挙子に構造体使ってる理由からしてあまり理解されてないんだし
今更わかりにくいもクソもって感じ
CA1034はコンストラクターかstaticメンバーを公開してる型だけ守ればいいと思う
ガイドラインが見つからないから聞きたいのだけどComponentModel.Componentを継承したら取り敢えずやるべき事ってある?
うがい手洗い
>>548 コンストラクタは
Hoge();
Hoge(IContainer conainer); // container.Add(this);
の2つ。 ぐらいかな
コンポーネントを作ったらEventsなどオーバーライド出来るものはすべて適切にオーバーライドしなければならない
>>550 デザイナでどちらのコンストラクタが使われるかの基準教えて
(IContainer)があればそっちつかう なかったら()使う
つかわざわざcomponentにする意味がわからん デザイナとか柔軟性ないから使わないしコード書くなら同じだし
・・・
・・・・
・・・・・
・・・・・・
・・・・・・・使えよ
・・・ −−− ・・・
アプリの設定ウィンドウをデザイナが重たいからデザイナなしで作ってたことがあったけど タブ化してコントロールが増えたらやっぱりギブアップしたよ デザイナは重いし慎重にコントロールを配置しないとバグったりするけど 部品の位置とか手計算してらんないよな 実行環境のDPIが変わったりすると配置が崩壊するのは何とかしてほしい
後輩「
>>554 さん、
>>554 さんの画面で修正が必要なんですけど・・・」
>>554 「何?」
後輩「ボタン位置の変更です」
>>554 「ったく、最近の奴はUIの作り方すら知らねぇんだから」
(ゴソゴソ)
>>554 「これ使えよ つControl移動ツール」
>>554 「親が変わる場合はここにチェックをいれて(ry」
デザイナで、最初にボタンをポトペタすると 高確率でサイズがすごく小さくなるのは俺だけかな?
だろうな あとフォーム選択してフォント変えた時に全体的に大きくなるのは俺だけかな?
>>564 手が震えてるだけ
>>565 Form.AutoScaleModeのデフォルトがFont
ゲームみたいなカッコ良いUIを簡単に作れるデザイナ&リソースを販売したら売れる?
品質と値段による
グレープシティとかいくらでもあるじゃん。売れるけど信用が無いと厳しいよ。 使う側としても何かあれば共倒れになっちゃうから。
君の特定のアプリ内でうまく動くものを作るのは難しくなくても 誰がどんなアプリで使ってもうまく動くものを作るのはとんでもなく手間がかかるんだよ
んなこたーない 正しく作れば正しく動く。それだけ
零細企業の怪しいコンポーネントなんて使おうと思っても調達が許可しない
俺はまともに動くUI自作できない。ある程度割り切って作ってる フォントサイズ、色盲向け設定、色数・・・考えることが多すぎるんだよ
一行目と二行目の内容に関連が無いようだが
完璧なコントロールを作るのは大変だよ。 レイアウト関係のプロパティにはローカライズに対応する為の属性付ける必要があるし、 デザイナ用の拡張機能も色々あるし、 変更イベントもちゃんとXXXChangedって名前にしないと後でDataBindingで使えないとか言われるし。
UIは作っても少ししたら時代遅れになる 使い捨てと割り切り手を抜くのが正解
何をもって正しいとするかが場合によって変わるから
Windowsのシステムカラー変えたりdpi変えたら大惨事ってあるよねえ でもwinのシステムの使いづらさのせいもあると思うんだけどな、スケーラビリティとか
>dpi変えたら大惨事 いえ、まっとうなプログラムでそれは無いです
オーナードローとかでまっとうなプログラムを書くのが難しいって意味だろjk
スケーリングはフレームワークが自動でやってくれるのに難しいも糞もあるか。 知らねえのに適当なこと言うな
そうだねー(棒
>>582 おまえが書いたら悲惨なことになるな(断言)
しかし、頭が悪い奴ってのは自分が馬鹿だってことすら分からないんだな。
そりゃ、馬鹿を自覚できる人は最初から相応に振る舞うからなぁ。
そうです、わたすがアスペ脳です、まで読んだ。
これが 2ch 脳か。w
俺は小学生のうちにプラトンを学ばせるべきだと思うんだよ 無知の知って謙虚な日本人の気質を守り伝えるために最適な哲学だよ それをやらなかったから日本では馬鹿なゆとりが大発生してしまった
もうButtonにイメージ貼るのやめよ
あれ、ここ大喜利スレ?
いちいちボタンデザインすんのか 面倒臭いからすべてテキストにしてる
ボタンは生産性わるい キーボードショートカットがよい
最近オプション設定にOKボタン設けないUI増えてるよね あれ慣れないわ
OKボタンがないというよりキャンセルが出来ない設定画面でしょ。 あれはあれでいいよ。 従来のWindowsのキャンセルが利く設定画面は、メリットのわりに 作る側(このスレはそういう人のためのスレだと思うが)の負担が大きすぎる。
キャンセルボタンってthis.Close()じゃダメなの?
>>596 動的に反映させなきゃいけないから面倒だぞ
でないと✕ボタンでダイアログ閉じたら設定終了なんて非直感的極まりないUIになる
どう考えてもOKボタンで一括更新のがパターン少なくて楽だろ ビューとモデルの間に1オブジェクト挟まない人なのか?
>>595 はスマホとかWin8アプリみたいに一画面で遷移するタイプならいいが
ダイアログとは相性悪いと思うわ
Macだとダイアログベースで
>>595 が普通だけど、アプリの作りによってはそのせいですげえ不自然に感じる
使う側としては見ながら調整したいからリアルタイム設定のが好き
やっぱやーめたって時に キャンセル(無かった事にする)と前と同じ設定に変更するのでは気持ち的に違うな 特にダイアログだとXボタンの扱いが曖昧になるね
項目が完全に独立している場合は 即反映でいいんだけど、 そうでない場合は「確定」操作という クッションが無いとイラっとするんだよなあ
テレビゲームのUIはそれが普通だった気がする
>>599 そう少なくともWindows FormではVMみたいのは挟まない人。
キャンセルを可能にするためには、モデルのプロパティだけを集めた別のオブジェクトを
いちいち作らなくちゃならないが、これが面倒。
そこに値の検証の問題が入ってくると尚更のこと。
キャンセルの機能が必須じゃなければ、今時のモバイルのUIみたいにUIで入力された値を
ダイレクトにモデルに反映させる方が手間が少ない。
シリアライズ対応した設定保存用のオブジェクト用意して、それにICloneableつけとくだけで 簡単にキャンセルできるの作れるのに、そうしたがらない人は多いな
>>606 だってICloneableって非推奨だもん
キャンセルがどうこうより、設定が即時反映されるのかどうかだろ OK押すまで反映されないなら、入力内容は無かったこと(キャンセル)にされるのでキャンセルボタン意味あるけど 即時反映される場合は、入力した段階で反映されてるわけで、キャンセルとか有り得ないから、元に戻すなりデフォルトに戻すなりが必要なだけ
通常はOKボタンで反映保存。 プレビューチェックボックスをONにしたら、即反映されるけど保存はOKボタン押したときでキャンセル可能にとかあるだろ。 反映させるのが必要かどうか、操作性をどうするかが問題。 明らかにキャンセルあったほうがべんりなのにそれを用意しないやつは論外。
すごく。平行線です。。
もともと収束点を決めて話をしてないからな 飲み屋でおっさん数名が喋ってるのと変わらん
>>606 >ICloneableつけとくだけで簡単にキャンセルできるの作れるのに
技術的に簡単かどうかはどうでもよくて
どうしてヘンテコな使い方をするんだ
他人が見たら何だこの糞はと思うだろ
ICloneableなんかつけないけど設定オブジェクトをクローンしてダイアログで弄るのは常套手段
そろそろ鬱陶しいから閉店しろ
閉店ガラガラ
次どこ行く?
つぎはPython行く
Cに帰る
帰れソレントヘ
オーそれ見よ
リアルタイム派は複数が関連する設定項目はどう作ってるんだ? 一発決定派ならパラメータおかしいってメッセージ出すだけやん?
どこかに入力エラーがありますがどこかは教えませんってフォーム見ると作成者を数日拷問の後惨殺したくなるよな
あるある
>>622 あと、色々入力させてから、最初の方の項目にエラーがありますとか...
住所で使う数字を全角限定にするってのも何?半角を勝手に全角に変換すりゃいいだろ
あと「適用」ボタンも、変更してないときは無効化しろとか。 うっさいわ 変更したかどうかくらい自分で覚えとけ 怪しかったらキャンセルしてもいっかい設定し直せ
無効化しろよ。おまえみたいなのは作る資格なし
うっさいわ
UIの話にずれてきてるから言っておきたい 徐々に進みが遅くなるプログレスバーを作る奴は世界中のせっかちに殴られて死ね
最近プログレスバー使ってないな
>>624 で、再入力させられるが、キャッシュされてなく
フォーム内全リセットされてて空欄になってるとか
webのお問い合わせフォームでやられるとムカっとくる。
あと、テキスト書いて送信したら、セッションが切れました
時間切れですとか。
Open/SaveFileDialogを表示中のスレッドAに、 別のスレッドBから終了指示をだして、 スレッドAを終了させるにはどうしたらいいですか? スレッドBから BeginInvoke(delegate{Appication.ExitThread();})や Abortしても終了してくれません。 Abortを呼び出したスレッドBも止まってしまいます。
>>633 コモンダイアログを他から勝手に閉じないでください
ダイアログウィンドウにWM_CLOSE投げろよ でもそういうことさせないように正規の方法じゃウィンドウハンドルとれないようになってるんだな
HTML5の研修受けてきたけど 業務用アプリはもう.net終わるんじゃないかな
html5てデバッグやテスト簡単に出来るの?
クライアントアプリ自体終わりだよ 少なくともMSはそう考えてサーバーの方に注力してる .NETはいずれサーバーだけになる
何年遅れのWeb2.0論だよそれw
といっても実際Azureとか無茶苦茶伸びてるし 現在のMSはクライアント技術としては.NETよりもHTML5を推してるのも事実だし WinFormsもWPFもほぼ開発終わってるけどASP.NET(MVC)は活発に強化され続けてるし
しかし、大局を見誤り続けるのはMSの伝統芸だからなぁ なんか末期のSunを見てるみたい
クラウディアさん可愛いよね
GAEはいい線行ってたがPaaSの中では失敗作だったな IaaS+SaaSな構成のが扱いやすそうだ
サーバーサイドへの移行は今後も止まらないと思うが クラウドはそろそろ限界が見える気がするな セキュリティ上の懸念を払拭できないから何でもクラウドにはでけへんし
C#2010+.NET4+Win7です struct Test { private readonly int _Value; public Test(int value) { this._Value = value; } } void fund() { var aaa = new Test(1); // 1 aaa = new Test(2); //2 } 上記コードでTest._Valueはreadonlyのため2でエラーとなるのではないかと 考えていたのですが_Valueが変更されてしまいます。 構造体でのreadonlyはあまり意味がないのでしょうか?
>>647 1と2って全く同じだから、当たり前かと。
>>648 違いはないのですか。
structは値型とのことで1の場合は インスタンス生成時、2の場合はインスタンスメンバの
上書時と考えていました。
C++っぽく考えていたので違和感がありました。
_Valueが変更されてるんじゃなくてaaaそのものが変更されてるんだからreadonly関係ない structがclassでも同じこと
651 :
デフォルトの名無しさん :2013/09/20(金) 13:27:11.92
>>647 new Test(1)で生成されたオブジェクトとnew Test(2);のオブジェクトは全く別物だから
_value自体が2つ独立で生成されます
だから_valueに値が入るのは1回だけだからエラーは起こりません
これで試してみなよ struct Test { private readonly int _Value; public Test(int value) { this._Value = value; } public void SetValue(int value) { this._Value = value; } } void fund() { var aaa = new Test(1); // 1 aaa.SetValue(2); //2 }
static指定できるのかな?できるならそれでも
655 :
647 :2013/09/20(金) 17:14:48.20
C++2010で試しました。
イメージではこんな感じでした。
struct Test
{
private:
const int m_Value;
public:
Test( int value )
: m_Value( value )
{
}
};
void func()
{
Test aaa = Test( 1 ); //又は Test aaa( 1 );
aaa = Test( 2 ); //コンパイルエラー
}
>>647 がclassであれば納得できたのですが・・・。
言語が違うのでそういうものだと理解しておきます。
みなさんありがとうございました。
>>655 それはエラーの意味が違わないかい
同等のコードにするならこうだろ?
Test *aaa = new Test( 1 );
aaa = new Test( 2 );
>>655 それやってることがC#のと全然違う
void func()
{
Test* aaa = new Test( 1 ); //又は Test aaa( 1 );
aaa = new Test( 2 ); //コンパイルエラーにならない
}
658 :
647 :2013/09/20(金) 18:26:47.93
なんか良くわからんがstaticなクラス作れば良いんじゃねえのか C++の話はよそでやってくれ
>>655 試してなくて申し訳ないけど、これなんでエラーになるの?
ポインタが分かってないとこういうことになるっていう例
C#では値型の代入は、IL上ではOpCodes.Ldloc/ OpCodes.Stlocで 値型丸ごとをスタックにつんで丸ごとポップする 要するに途中にreadonlyがあろうが丸ごとコピーなわけです ところがC++にはコピーコンストラクタとか代入演算子のオーバーロードとか、 さらにそれらがデフォルトで定義されてたり、恐ろしげな仕様が盛りだくさんなわけで その際にデフォルトの代入演算子がメンバーを1つずつコピーしようとして 途中にconstがあるので代入できないと怒られるわけです
スレチかもしれないが、質問。 Win8 64bit .Net4.5 こんなフォームを常駐させていたが気が付いたら消えてた、何故? ControlBox = false; Cursor = Hand; FormBorderStyle = FixedToolWindow; Opacity = 0.2D; ShowIcon = false; ShowInTaskbar = false; TopMost = true; 1クリックでタスクバーを表示するツールです。 (ブラウザ全画面で使ってるとこういうの無いと使いづらい) OSの休止を何度か繰り返すとフォームが消えます。 WndProcで記録してたウィンドウメッセージの最後はこれ。 msg=0xc2cf hwnd=0x20630 wparam=0x0 lparam=0x0 result=0x0 消えた状態でもSendMessageには反応しました。 なのでVisualStudioからアタッチし、this.Refreshで無事フォームが復活しました。 描画されていなかっただけですが理由が気になります。
システム側のバグじゃない? Opacity = 0.2D; TopMost = true; このあたり絡むと謎の挙動多いよね。 っていうか、常時全面のウィンドウじゃなくて、オーバーラップするフォームを Ownerにした方がいいと思うんだけど。 まあ、workaroundが分かってるなら問題ないじゃん
「システム」という言葉を その範囲が不明瞭なまま乱用する人の言うことを 信用してはならない
>>666 いやいや君が文脈を読めないお馬鹿さんなだけ。
君英語苦手でしょ?w
ありがとうございます。 確かに不安定なところもありますよね、細々と検証を続けて行こうと思います。
666の言っていることが的を射ている件について
うん、文脈から切り離して語彙を語ることに意味があると思うのは馬鹿の証拠、 という意味ではね。
自演?
そういや、アスペルガー症候群の症状の1つが文脈や状況を把握する能力の欠如だったなw
文脈依存文法の言語なんて使い道があるのか?
典型的な(ry
>>655 システム=なんか知らんけど偉い人が作った自分のアプリ以外の何か
謎の挙動=理由も再現方法も分かんないけど調べる気もない不思議な現象
>>677 どうしてPerlが出てくる?
C#自体が分脈依存の構文だろ
C#にはperlのあれはない。
日本語自体が文脈に依存するだろ
アスペかどうかは知らんが、この一連のレスに加わってる奴の頭が残念なのは疑いようがない
アスペというおまえがアスペなのは疑いようがない。 おまえ以外はみなコンテキストが分っているのだから。
アスペの意味が分からない奴がアスペといっても説得力に欠けるなw
いろんなスレですぐアスペ、アスペいう人がいるけど、間違いなく本人がアスペだと思う。
ここまで全員
私はアスペではない、ADHDだ
などと意味不明なことを言っており精神錯乱状態であるとのこと。
金曜だからお前ら疲れてるんだなそうだな
精神科医じゃなくたってわかるわ ここには基地外しかいない
お察しください
perlのあれってあれのことだよ。というかあれしかないだろ。
マトモに説明できない荒らしなら出てくるなよ低脳
perlを知ってればアレで通じるんだが。いわゆる$_のこと。
まさかC#に分脈依存な文法が無いとでも思ってる? 分脈依存の一例でしかない $_ がどうして ここで出てくるのか不思議なのだけれど
あるならさっさと言えばよい。すぐ言わないのはアスペ。
引くことを知らない大人子供ばかり
C#は文脈依存のキーワードが多いよ
文脈どころかキーワードと同名の型が定義されているかどうかで キーワードになるか型名になるかが決まったりするからな dynamicなんかがそう 互換性を重視した結果、実はとんでもなく複雑な言語になっている
dynamic ダイクマ
懐かしいな
704 :
デフォルトの名無しさん :2013/09/28(土) 02:16:11.73
結局C#って使い道がなくなったな
DictionaryにAddしたオブジェクトを取り出して、値を書き換えてるんですけど変わらない事ってありますか? コードで言うと、こんな感じです。 自分の理解では★の行はいらないと思ってるんですが。。 Dictionary<string, MyClass> mydic = new Dictionary<string, MyClass>(); MyClass s = new MyClass(); s.kakaku= "100円"; mydic.Add("りんご", s); MyClass s2 = mydic["りんご"]; s2.kakaku="200円"; mydic["りんご"] = s2; ★これ要る?MyClassの実装によっては、これが無いと次の出力の時に反映されない? foreach (KeyValuePair<string, MyClass> x in mydic) { MyClass mc = x.Value; Console.Write(mc.kakaku); }
>>705 classと思っていたらstructだったとか
707 :
デフォルトの名無しさん :2013/09/28(土) 04:06:19.91
>>706 ありがとうございます!それでした!!
ドンぴしゃでした!!!
>>704 業務ではJavaに次ぐ地位だしWebでも延び続けてるしゲーム開発のデファクトスタンダードになりつつあるし
COMで苦しめられたからマイクロソフトは信用出来ない
設計者は元ボーランドの、Turbo PascalとかDelphiの開発者だけどな。
今でもCOMやし。
COMで何を苦しんだの?
COMだいすき
concon
>>712 エラーコードがわけわかめな奴が結構あって、デバッグがやりづらかったな。
COM を実装する立場になると、しょうがない面もあるのはわかったけど。
エラー詳細の取得とか、もう少しデバッグがらみのインターフェースを充実して欲しかったな。
COM最大の失敗は検索しにくいところ
.NETもたいがい C#も昔はそうだった
Goの悪口はやめるんだ
COM前出のOLEの頃に関連のMCPとか取ったけど 今のC#のCOMって別の物に見える。 MTA, STAもなんか省略前の名前が変わってるし、 QueryInterfaceとかレジストリのCLDIDとかまだ生きてるのかな?
おうバッチリ生きてるぜ
どっこい生きてるシャツの中
722 :
デフォルトの名無しさん :2013/09/28(土) 17:32:49.46
コピペマン参上!まで読んだ。
マカーしね
COMってGUIDはかぶらないよっていう前提に立っているけど もしかぶったらやばいな。
激しくデジャブーな話題だな。 っていうか宇宙全体の原子の数以上の組み合わせのものが一致する確率って
でもあれかぶる可能性はあるよな 重複したとこで問題起きる可能性はまたさらに低いがw
残念だがシードのパターンがそんなに無いからかぶる
ついでだから聞いとこう xxxxxxxx-xxxx-....xxx-1234 というGuidが登録済みとして、関連するGuidがもう一つ欲しい場合に xxxxxxxx-xxxx-....xxx-1235 として登録しちゃって問題ない? 新たにGuidGenしたのと比較して被る確率は同じだよね?
MSはそれしてるよなw
>>726 似たような話を何年も前から聞いてる
メモリ4GBも使う訳ねぇだろwとか、
2000年までにこんなコンピュータ使う訳ねえだろwとか
種はMACアドレスと時間じゃなかったか? 一致することはないよ。
単純に考えてguidgenを組み合わせ数よりも多い回数実行したら・・・
っていうか自分がguidgenつかってても他人がguidgen使ってなかったら意味ないじゃん
>>731 確率的には、地面上の石ころの分子の振動方向が一致してひとりでに飛び上がる
確率より低いはずだけどね
>>732 WindowsのGUIDは2kのころからUUIDv4実装
すなわちMACはシードに使ってない
一応UUIDv1がほしいならUuidCreateSequentialで作れる
>>735 誕生日のパラドクスと絡めた話が見つからないんだけど
その辺はどうなの?
UUIDv1はケツの48bitが純然たるMACアドレスなのでセキュリティリスクを避けるために変えたらしい GUIDで消費者追跡なんて話もあったね、昔
>>736 ATL COMプログラミングの本にはMAC使ってるって書いてあった。
>>740 原書の発売日(98')考えるとその当時はそれであってんじゃない
>>738 誕生日のやつは本当のパラドックスじゃないけどな
743 :
デフォルトの名無しさん :2013/09/28(土) 21:57:26.75
C#の使い道ってどんな場面ですか?
他人を煽るネタにするときだね
>>743 クライアント側で.NETが使える前提の環境で、
開発チームにC#に習熟した人が多い時
>>741 VC6、ATL3.0だからその次はVS2002で.netだぞ。
MAC使ってないとか嘘言って引っ込みがつかなくなってんだろ。
本が必ず正しいとも言えない
>>747 じゃあ俺が丁寧に説明してやろう。
まず.NETのソースによるとNewGuidの実装はこうだ。
[System.Security.SecuritySafeCritical] // auto-generated
public static Guid NewGuid() {
// CoCreateGuid should never return Guid.Empty, since it attempts to maintain some
// uniqueness guarantees. It should also never return a known GUID, but it's unclear
// how extensively it checks for known values.
Contract.Ensures(Contract.Result<Guid>() != Guid.Empty);
Guid guid;
Marshal.ThrowExceptionForHR(Win32Native.CoCreateGuid(out guid), new IntPtr(-1));
return guid;
}
CoCreateGuidを呼んでいるな。
そしてそのリファレンスがここにある。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa379205%28v=vs.85%29.aspx Return valueをよく見て欲しい。
>RPC_S_UUID_NO_ADDRESS
>Cannot get Ethernet or token-ring hardware address for this computer.
RPC_Sなので、これは関数は成功しているが補足がある状態だ。
曰く、ハードウェアアドレスは読み取れなかったんだそうだ。
ハードウェアアドレスが読み取れなかった場合の成功を特別に扱っているということは
普段の成功では読み取れているということだ。
何のために?当然ハードウェアアドレスをGUIDの生成に使うためだよな。暇つぶしではないだろう。
ちょっと下には cannot be traced to the ethernet address of the computer とあるし、
単に追跡ができなくなっているだけで、生成に使用していることは疑いようがない。
悪意のある開発者が既存のグウイデに被せてきたら崩壊だろ
C#でできるCCWのカスタマイズ方法教えてよ マネージC++使わないとできないならめんどくせえ
エラーコードがドキュメントに書いてあるから処理があるという考え方はどうかと思う
すごい。MSが計算にMAC使ってるソースとしては完璧ですな。 これでGUID被ったら世界一運の悪い奴。
MACアドレス自動生成してるシステムもあるのにw
PCだけやってるとMACアドレスは既に振ってあるものって思っちゃうけど 電子工作してるとMACアドレスは自分で振るものだし。 その辺の認識が違うよね。
VMの仮想マシンのMACだって自動生成じゃん 無恥って怖い脳w
ここで VM とか言い出す奴の方が怖いわ (w
>>759 VMWareだとちゃんと自社のOUI振って生成してるが?
だから他社NICと被ることはない。
764 :
デフォルトの名無しさん :2013/09/29(日) 01:33:55.08
>>762 VMWareなんて誰も言ってないじゃん・・・
どうして素直にあぁそうだったなって言えないの?
>>758 おいおい、そんなのネットにつなぐなよ!
>>762 どうでもいいけどそれって反論になってないんじゃないの?
というか、仮にMACが被っても、単に一致する確率が厳密に0だと保証できなくなるだけのことで、
恐らく太陽が明日西から昇るぐらいの確率でしか一致しないことに違いはないと思うけどね。
太陽が西から昇る可能性はゼロ。GUIDがかぶる可能性はゼロじゃない。
MACアドレスだろうがGUIDだろうが、確率的に言えば有限の数しかないんだから、その個数分の1の確率でかぶる 地球の自転より速いスピードで自転と逆向きに進めば太陽は逆から昇るんじゃね
771 :
デフォルトの名無しさん :2013/09/29(日) 04:31:12.90
GNUの尊師に頼めば逆から昇らせてくれるだろうけど、代償も大きいだろうね。
バカボンのパパにでも頼めよw
議論()の余地なく重複するな
>>765 じゃあ何のシステムなの?
どうしてさっさと答えないの?馬鹿なの? あほなの?
なんでMAC使ってないというソースも出さないなの?
どうして次から次へと嘘つくの?
>>775 俺は
>>765 じゃないが・・・
VMはバーチャルマシンの略だろ。vmware以外にもあるだろ
vmwareが自社の使ってても自動生成には変わりないし、自社の割り当て分超えるマシン数でMAC生成したらMACが重複するのもでる
GUIDにMAC使ってようが使ってなかろうが有限なんだから重複しないわけがない。ただ確率が低いだけ
C#でできるCCWのカスタマイズ方法教えてよ マネージC++使わないとできないならめんどくせえ
>>776 うざいよ。さっさと重複するMACを生成するVMが何か言えば済む話だろ。
VMのMAC生成の仕様も知らないのに妄想でVMとか言うな。
馬鹿かおまえは。
>自社の割り当て分超えるマシン数でMAC生成したらMACが重複するのもでる この子算数できない子? 病院入れなきゃw
>>778 MACアドレスは281,474,976,710,656個しかないから、仮に281,474,976,710,657台のPC(VM)で1つずつ生成したら100%重複する。
GUIDは2の122乗個しかないから、仮に1台のPC(VM)内で2の122乗+1個生成したら100%重複する。
馬鹿なの? あほなの?
781 :
デフォルトの名無しさん :2013/09/29(日) 08:59:06.22
「仮に」にしても大概だわw
>>780 普通最初の24ビットはベンダー固有だから
たった16777216個で重複だな
おまえ頭にいいな。試しに重複させてみてくれ。 実際にその数だけVM生成してコリジョン発生させてくれ。 本当の馬鹿とは自分が馬鹿だとは気づかない。すべて妄想の中で生きている。
だから「確率が低い」って言ってるだろ。現実的には重複しないんだよ ただ、絶対に重複しないという保証はない
大規模運用していると結構衝突するけどな。 運用中にトラぶったおかげでうちは自動生成は禁止になっている。
>>785 そのMACを自動生成したシステムはなんというのですか?
今のところ具体的な実装は誰も言ってくれないのです。
>>782 VMホスト1台でそれだから、ホスト1000台構成なら1/16777の確率で重複する。
>>787 VMホスト内でチェックしてないそんな馬鹿な生成してるVMはどこのVMなんですか?
晒してやってください。
重複チェックなんかするVMホストはないよ。 OpenFlowなんか使うと、逆にMACが重複していないと困ることもあるしな。
UUIDは重複チェックしてるだろ。
791 :
デフォルトの名無しさん :2013/09/29(日) 09:19:53.97
ひとりの基地外に絡まれて脱線するC#スレwww
GUIDじゃないが、ExUuidCreateならMSのソースコードが転がってるから参照するといいかも
>>790 そりゃUUIDが重複したらインスタンス生成できないからな。
MACは重複チェックをしていない。
している実装があるなら挙げてみてな。
VMwareなんてUUIDの下3バイトがそのままMACになる糞仕様だったはず。
>>796 調べてみたら合ってたよ。
bios.uuidの下3バイトがそのままMACになっていた。
799 :
デフォルトの名無しさん :2013/09/29(日) 09:35:36.18
ボクもゴールしたいです…
ネスペから言わしてもらうとVMWareの仕様で何の問題もない。 仮想NICの構成に柔軟性もありよく考えられている仕様。いろんなテストもできる。 >大規模運用していると結構衝突するけどな。 >運用中にトラぶったおかげでうちは自動生成は禁止になっている。 それよりこれが事実かどうか知りたい。本当なのか。 一体どういうシステムでどういう付与ルールで運用したら衝突するのか。 よほどネットワーク知らない馬鹿かど素人が運用しているとしか思えない。
>>801 息をするように嘘をつく、ネスペになりたいけど実は基本情報処理すら
持っていないのがバレバレです。
>>801 もっと勉強しましょう、としか言いようがない。
>>801 彼は韓国人だろうな。
youtubeとかで不正に再生数を増やそうとする馬鹿か、その下請け企業だよ。
ひとつのL2にコリジョンするほどぶら下げるなんて攻撃目的以外ありえない。
スレチだし馬鹿はほっときゃいいよ
一ついえるのはネットワーク技術者は ものの見方が狭くバカが多いってこと
L2にそんなに繋いてる時点で捏造でしょ。 それ以前にテーブルフローしてまもとにパケット流れないよ。
何でL2に繋ぐ台数が関係するんだよ やはりネスペはバカが多い
>何でL2に繋ぐ台数が関係するんだよ >何でL2に繋ぐ台数が関係するんだよ >何でL2に繋ぐ台数が関係するんだよ >何でL2に繋ぐ台数が関係するんだよ >何でL2に繋ぐ台数が関係するんだよ
お、ネスペが発狂した シコらなくていいの?
くやしいのう くやしいのう
OpenFlowもしらないバカはでしゃばって出てくんなよw
自分の知ってるものを挙げて 「xxも知らないのか」っていうバカは ソフトウェア開発者に多い
そろそろクローズしませんか?
ボクの校門もクローズしたいです
>OpenFlowなんか使うと、逆にMACが重複していないと困ることもあるしな。 既に運用設計が間違ってるとしか。
これ以上は違うところでやってくれないですかね
ソースは俺!
OpenFlowで自動生成したらトラブりましたってw ただの馬鹿じゃん。
>>820 OpenFlowクンと自動生成でトラぶりましたクンは別のバカ。
誰も書いてないこと言い出すバカキターーーーーーー。
>>825 はどうしようもないバカだと聞いてきしまた。
おいやめろバカ
これは当たってるな。ワロタw
>大規模運用していると結構衝突するけどな。 >運用中にトラぶったおかげでうちは自動生成は禁止になっている。 大規模なのに手動設定とは大変だなwww
おまえにシステム管理任せたら人手がかかって大変そうだな 普通に考えてAPI任せじゃなくて、規則性もたせたバッチファイルなりソフトで自動生成って意味だろ
COMスレでやれよカス
スクリプトでチェックせずにプリントアウトして目視チェックしてるやつって必ずいるよな。
スクリプトのテストが工程に加わるからな 非効率でも頑張って目視するしかないよ
そんなもんだよ テスト自動化を進言したら テストコードのテストで工程が増えるからって拒否される それが老害の世界なんだ やつらまだ機械より人間が賢いと思ってやがる
重複チェックをスクリプトでチェックしますといって拒否る老害なんていないだろ。 COBOL世代こそperl使いだらけじゃねーか。
実際いるだろ。便利にすると逆に怒られる。自分はこうして努力し続けてたんだって。知るかよ
>>840 拒否はしない
スクリプトのテストを要求される
めんどくさいから僕はプリントして
残業代いっぱいもらう方を選んだ
オタリーマンの世界だなw
うちとはまるで逆だな 何でもいいから工数減らせってお達しが出てるわ 業績悪いから
>>844 無駄な努力
80:20の法則でいう20の方なんだよ効率化って
バカだなあ 契約形態が完成物に責任が伴う契約か 業務委託かで話が違ってくるのに あ、偽装請負派遣が横行してるから区別つかないのか
847 :
デフォルトの名無しさん :2013/09/30(月) 02:05:14.43
>>839 テストコードが間違ってたらテストにならねーじゃん。
プログラムってものは人間が目で見なけりゃなんねーんだよ。
見た時間に比例して不具合も見つかるし
本質的な仕様の問題も見つかるんだ
覚えとけ若いの
覚えとけ若いのだって(笑 ロートルってやーね
>>847 ありがたいアドバイスありがとうございます
>>839 > やつらまだ機械より人間が賢いと思ってやがる
賢いだろ?
適当に手抜いたり、サボったりできるしな (w
冗談はさておき、確実性と速度はやつらの方がはるかに上回ってる。
テストコードの信頼性については、まともなやつらが組んでいれば、ある項目について製品とテストコードの両方が間違っている可能性は、
>>847 あたりのロートルが見過ごす可能性はより低いだろ。
万が一そう言うことがあっても、テストコードを修正すればその後はほぼ確実に防げるしな。
人の方が確実性と速度が速いのか ならもうテストだけじゃなくてシステム全部手動にすりゃいいのに
そうやってサボる事ばかり考えて テストコードで全部検証しましたから。キリッ! とか言いって全く見ない。 そしてテストコードが現状にマッチしなくなってても気が付かないわけか
そろそろ出勤しなさい奴隷たちよ
>>852 それやってるやつが無能なだけじゃん。そんなやつはテスト使わずに自分で検証しても結果は同じだよ
>>854 いや。無能なのは
>>852 使ってる人間(テストコード)に問題があるのか、テストシステムに問題があるのかがごっちゃになっている
このタイプの人間はトラブったときに原因の切り分けができずに詰む
お昼だぞ〜土方集まれ〜^o^/
>>847 >本質的な仕様の問題も見つかるんだ
コーディング段階で見つからない本質的な仕様ミスを、テストで見つけるんですか
無能なプログラマの居る会社のテスターさんは凄いですねぇ
見つかるよ。 仕様自体のセキュリティリスクとか。
仕様書作る段階でアレっ? 仕様書に目を通した段階でアレっ? 開発段階でアレっ? テスト段階でアレっ? 本質的な仕様ミスなら最初の段階で見つけろよw
見つからないときは見つからない。 チェックすればバグが見つかると思ってる奴は技術者失格。
おやつ休憩〜\^o^/
見つからないときは本気で見つからないだろうけど テスト段階でコード見るだけでみつかる本質的な設計ミスって話だからな 設計した人間とコーディングした人間はどんだけ無能なんだって話
まあ見つからないときはそんなもんさ。 チェックシステムのほうが効果あるかもね
無能が9割の中で開発するのが現実。 まじ少数精鋭なんてMSぐらいでしょ。
866 :
デフォルトの名無しさん :2013/09/30(月) 17:42:32.52
C#のスレかと思ったら違うようなので他のスレに行きますね
はい
ところでC#には規格書や仕様書はないのかね? MSDNではあまりにも不十分だよ
870 :
デフォルトの名無しさん :2013/09/30(月) 19:12:30.60
>>855 >このタイプの人間はトラブったときに原因の切り分けができずに詰む
そういう発想がすぐ浮かぶってことはお前自身がそういうタイプなわけか
>>871 microsoftはこれをC#5のだって言い張ってんだよw
ダウンロードページ開いてみれば分かる
目次見るとAsyncFunctionのセクションがあるからC#5.0の規格だと思う
>>870 「お前自身がそういうタイプ」とも考えられるが、「お前のまわりにそういう奴がいる」のようにも考えれるだろ?
こういうように色々なケースを思い浮かばないタイプってことな。つまりお前みたいなやつのことだ
874 :
デフォルトの名無しさん :2013/09/30(月) 20:02:38.05
人間自分のコンプレックスを書き込むという心理があるから前者だな テストしたくないんだよな?はいはいおkおk
マ 板 で や れ
何だこの野郎お前よりたぶん若いぞ
25まではお兄さん それ以後はおじさん 40過ぎたら老害
40は初老
言語より.NET Frameworkの仕様書がほしい マイクロソフトのウェブサイトは適当すぎる
仕様書読んだことあるけど、Webの方が詳しく書いてあるよw
>>881 ここ2、3年のマイクロソフトのドキュメントの品質が
劣化してるように感じる
言語仕様はともかく.NET Frameworkの説明はひどいね
その点Javaは充実してるよな
昔からM$のドキュメントはイミフだっただろ
日本語ドキュメント=日本語になってない。分かってる奴でもイミフ 英語ドキュメント=大部分は理解可能
自動翻訳しただけだしなぁ
>>884 Javaはドキュメントの量が少ないから翻訳に手間かけられるだけでしょ
メソッドの説明が一行で終わりとかザラだし
原文の話じゃないのか?
日本語の技術資料は圧倒的にWinodws関連だよ。 MS以外のブログ、入門サイトも含めて圧倒的。
日本語のサイトなんか見ない方がいいぞ
原文で比べるなら尚更JavaのドキュメントがMSDNに内容で勝ってるところなんて無いだろ 日本語訳の質と検索のしやすさと軽さはJavaに分があるが
おまえらJavaもやってるのか。スキルたけーな。
むしろJavaできないとか不自然じゃね
3人の役に立っただとう・・・!
言語だけならC#ができればJavaは既にマスターしてるようなもんだろ Javaで使えない機能を覚えるだけ
いやー その考えはどうかと。 やりたいことと、そのための最適なクラスライブラリを空で言えるくらいになってないと業務では使えない。
.NETからJavaに行くとJDKがあまりにもスカスカでカルチャーショックを受ける。 同時に、だから訳のわからんライブラリが乱立してるのかと納得もするけど
シングルトンパターンは未婚豚パターンか
Singleワロタwww
その場しのぎで作ってるところは中途半端で理解に苦しむようなライブラリ・クラスが 乱立するよな。ORACLEの伝統だが。
俺のソースがそれになってるわ。整理しないと・・・
カオスを越えて週末が近づく
>>898 業務で使ってるけど
MSDNとかJavadocとかないと無理だわ。
>>894 お、俺doubleしか使わねーし(震え声)
マルチスレッド簡単君うざい。
>>70うざいまで読んだ
よしよし何度も読め
次スレ70は俺のもの
シングルトンパターンの優位性ってなんなの? ネットで調べてもこういうパターンだという解説だけで実務的メリットの解釈がまったくない それよりWPがまったく普及しないからそろそろObjective-Cが必要になりそうなんだがMacやLinuxにVS提供する気はないんですかねM$さん・・・ MonoDevelopが糞過ぎてXcode使わざるを得ないんだが、Objective-Cが輪をかけて糞なんだよな C#の出来はこんなに良いのに・・・モバイルに乗り遅れたM$マジで恨むわ
恨む先が間違ってる
>>912 つ Xamarin
sigletonパターンはほとんどのケースではstatic classで十分
特徴といえば初期化が遅延できるくらいか
次はオブジェクト生成時のロックで1スレ潰すのか?
ロックンローォォォォル!!
RTから離脱すればWPも売れる
>>664 この後64bitビルドして10日、バグ再発せず。
WOW64が原因かも。
情報共有乙です
データベースに格納されている、シングルクォーテーションやダブルクォーテーション、円記号を含む文字列を読み込みたいのですが、単純にString型の変数や配列に突っ込むとエラーを吐きそうに思います。 @をつければ円記号については回避できるでしょうが、ダブルクォーテーションに関しては、どこかに格納しないとエスケープシーケンスをつけることもできないのに格納ができないということで回避策がないように思うのですが、どうすればいいのでしょうか?
> エラーを吐きそうに思います。 吐かない
やってみりゃわかるだろうがよォー
>>921 この辺りは問題ないように考えられているんでしょうかね、ともかく問題ないようで助かりました。
ありがとうございます。
>>922 取り越し苦労だったようで…
ところが馬鹿が組むとトラブルw
@をつけたリテラルの中では”は””と2個かさねることでエスケープする。 @をつけない文字列なら¥”でエスケープする。
927 :
デフォルトの名無しさん :2013/10/06(日) 00:02:52.34
20KB程度のファイルをコピーした後、 すぐにFileStream で開くと例外が発生します。 File.Copy(srcFilePath, tarFilePath, true); FileStream fs1 = new FileStream(srcFilePath, FileMode.Open); Exceptionのメッセージは以下の通りです。 ==== 別のプロセスで使用されているため、プロセスはファイル XXX にアクセスできません。 ==== File.Copy() 関数にて srcFilePath のアクセスを 握っているのだと思いますが、File.Copy() 関数は 戻り値が void であるため、アクセスを開放したことを 知ることができません(と思っています)。 上記の解決方法をご存知の方、お教え願えませんでしょうか。
928 :
927 :2013/10/06(日) 00:07:53.89
実際には、次のように記述しています。 @exe実行時にファイルをファイル選択ダイアログから読み込ませ、 ファイルを読み込む。その際、File.Copy() 関数にて、tmpファイルを作る。 Aアプリは、ファイルの中身を編集することができる機能を持つ。 Bアプリを終了するとき、FileStreamを用いて、srcファイルと tmpファイルの 比較を行い、必要であれば上書きし、終了する。 この仕様のアプリを作っているのですが、 exeを実行してファイルを開いたあと、すぐにアプリを閉じると 例外が発生していました。原因を追究していくと、 File.Copy() のあとですぐに FileStream で開くとNGだということが分かりました。 10秒ほど待ってからアプリを閉じれば 例外は発生せずに閉じることができます。 原因や対処方法など、分かりましでしょうか。よろしくお願いします。
>File.Copy() 関数にて srcFilePath のアクセスを握っているのだと思いますが それは絶対ないと思うw ちゃんと確認した?
930 :
927 :2013/10/06(日) 00:18:16.41
>>929 レスありがとうございます。
絶対に無いですか、どうやって確認したら良いでしょうか?
今はテストコードとして
File.Copy(srcFilePath, tarFilePath, true);
FileStream fs1 = new FileStream(srcFilePath, FileMode.Open);
FileStream fs2 = new FileStream(tarFilePath, FileMode.Open);
のように書いてみていますが、
BreakPointを3行全部につけて実行していると、
2行目を実行する時点で例外が発生しています。
メモ帳とかで開いてんじゃないの?w
アクセス権なしで開いて、Closeしてないんだろ
>>930 ・1行目と2行目を入れ替えたらどうなる?
・ウイルスソフトの入ってないPCでも同じ結果になる?
934 :
927 :2013/10/06(日) 00:31:36.11
>>931 いえ、開いていません。
>>932 fs1.close(); fs2.close(); は行っています。
また、上でも書いていますが、
exeを開いてから10秒ほど経過してから
FileStreamでOpenした場合は、問題なくOpenできています。
exeを実行してから10秒で勝手にCloseされる処理が
どこかに入っているはず、ということでしょうか?
>>934 単純にその3行(
>>930 )の処理だけのプログラム作って再現するか見てみればいいじゃん。
環境原因なら再発するだろうし。
ちなみに俺が今ためしたところ全然起きないよ。
936 :
927 :2013/10/06(日) 00:37:56.18
>>933 >>935 みなさまレスありがとうございます。
1行目と2行目を入れ替えたところ、
FileStream(つまりもともとの2行目)のところで
例外発生しました。
File.Copy() は無関係でした。皆様の予想通りです。
なぜ入れ替えてデバッグしなかったのか、お恥ずかしい。
もっとデバッグしてから出直してきます。
>>928 3で、2つのファイルを比較して、
変更されていたら上書き保存するのは、面倒すぎる
比較するとは1文字ずつ、すべての文字を比較するのでしょ?
dirtyフラグを使って、1文字でも変更したら、
たとえ元に戻しても、上書き保存すれば?
それと、丸3のような環境依存文字は、使わないほうが良いのでは?
>>937 環境依存文字とは何でしょうか?
何故使用しない方が良いのでしょうか?
気にすんな。使って問題ない
いまだに環境依存文字とか言うやついるのかw
2chが未だにShift_JISなのが悪い
えっ? ソースは?
943 :
927 :2013/10/06(日) 09:44:47.69
>>937 コメントありがとうございます。
比較部分については再検討してみます。
>みなさま
ファイル選択後にファイル操作を
している部分があり、readerをclose
していない箇所がありました。
お騒がせいたしました。
944 :
デフォルトの名無しさん :2013/10/06(日) 09:45:58.06
>>942 1.IEで2ちゃんねるを開きます
2.右クリックしてエンコードを見ます
関西にいたときどのスーパーいってもブルドックがなくて往生した だいたいカゴメしかおいてなかった
東京に引っ越したときにソースが
ブルドックソースしかなくて
発狂しそうになったわ
>>944 見た。「シフトJIS」と書かれてた。
じゃOKだね。
日本語フォントは全て機種依存フォントだな アルファベットで書かないとあかんで
ちゃんとローマ字を打って変換しているから大丈夫だよ
関東では、あのエロ監督のブルドッグソースのCMまだ放映してるのかな
951 :
デフォルトの名無しさん :2013/10/06(日) 13:25:04.78
ゲーム作ってて、ゲーム内のUIについてイベントドリブンを上手く実装できないので質問。 現状フォーム内のどこかがクリックされた時に、 C#のイベント機能を使って、 配置されてるボタン等のClicked関数が呼ばれるようになってる。 これだと2つのボタンが重なっていた時、上のボタンと下のボタン両方のClickedが呼ばれてしまうんだけど、 上のボタンだけクリックされたことにしたい。 これC#のイベントでうまくできませんか?
ボタンなどのコンポートを抽象クラスで管理 このクラスはz座標と二次元当たり判定を持つ 画面のある点x,yをクリックしたらz座標が最も高くx,yを当たり判定領域に含むオブジェクトのclickedを起動させる
「うまく」って言うのが何をさしてるか知らないけど 基本はどっちが上にあるかを自分で判定してハンドラを振り分けるだけ 一般的にUIのイベントモデルはバブルアップバブルダウンで実装される (呼称はUIシステムの作者によって違う場合があるが、基本は同じ) 普通のFormと同じように動かしたいならこれを実装するしかない
>2つのボタンが重なっていた時、上のボタンと下のボタン両方のClickedが呼ばれてしまう Windows FormでもWPFでもそんなことは起こりませんw (WPFならUIツリーによってはそういう動作も可能だけど) 何か勘違いしてないか
>>954 勘違いしてるのはお前
恥ずかしいやつだな
切腹したら?
普通に実装するしかないですか/(^o^)\ C#のイベントで、event呼び出される順序の定義とか、残りの(まだ呼び出されてない)イベントを切り捨てるとか そういうことができたらいいなあと思ったんですが無さそうですね/(^o^)\ ありがとうございます
>>954 Formの上にボタンなんかは何もなくて
自前で描画してる状態の話だよ
さすがに察してるよね?
察してたらあんな発言しないだろ
上から順番にイベントハンドラが呼ばれる実装なら引数で対応できる
addとremoveを使ってなければeventは追加順なんだっけ? デリゲートは追加順保障してるよね
イベントは誰が発火してるんだ?
>>957 >event呼び出される順序の定義とか、残りの(まだ呼び出されてない)イベントを切り捨てるとか
>そういうことができたらいいなあ
void OnHoge()
{
if( Hoge != null )
{
Hoge();
}
}
とイベントを発火させてるところで
foreach( EventHandler dlg in Hoge.GetInvocationList() )
{
if( foo )
{
dlg( s, e );
}
}
みたいな感じで発火をコントロールできる
そんなことしたら明示的にマルチキャストデリゲートを追加した場合に正しく動作しないだろ
放火は犯罪だ
>>963 なるほど、そんなメソッドがあるのか
ちょっとやってみますありがとう
968 :
曹操 :2013/10/06(日) 21:06:24.92
自慢の艦隊が何者かに放火されて全焼してしまいました。 下手人を捕らえてください。
邪魔
ギャグ飛ばすなら面白い奴にしろ
「C:\Program files\*\*.exe を指すショートカット」をProcess.Start()に食わせると ハンドルされていない例外: System.ComponentModel.Win32Exception: 指定されたファイルが見つかりません。 場所 System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) っていう謎現象に悩まされてるんだけどどういうこと OK File.Exists()でチェック OK ショートカットじゃなくC:\Program files\*\*.exeを直に指定して実行 OK 他の場所のexeを指すショートカットの実行 半角スペース原因じゃなくて権限系だと思ってるけど… やりたいのはショートカットを読み込ませるお手軽ランチャ。 ランチャなのでProgram Files以下を指定できないとお話にならない
973 :
デフォルトの名無しさん :2013/10/07(月) 05:07:06.17
>>972 ショートカットの実装などネットで探せば見つかるから
それに読み込ませてパスを取得してC:\Program files\*\*.exeの形で実行すればいいだろ
C:\Program Files (x86)無くならねーかなぁ 実際はx86で動かすしか無いのが多いから、区別する為に必要なんだろうけども
手抜きして System64 Program Files(x64) を作らなかったMSがすべて悪い。
あー、どうせ別フォルダ作るならx64用を作って欲しかったな 何度迷子になったことか
同感だわ regsvr32.exeも、system32に入ってるのは64ビット用で、sysWow64のが32ビット用とか罠すぎる わざとトラブル源作ってるとしか思えん
ファイルとフォルダのロケーションの取得について質問です OpenFileDialogでは、OpenFileDialogコントロールをダブルクリックした場所(FileDialog_FileOk内)に Label.Text = openFileDialog.FileName; などと記述すればラベルに格納されますが folderBrowserDialogのコントロールをダブルクリックした場所(folderBrowserDialog_HelpRequest内)に Label.Text = folderBrowserDialog.SelectedPath; などと記述した場合は取得されません OpenFileDialogのように、このダイアログ内にコードを書いてしまいたいのですが、folderBrowserDialogの場合はfolderBrowserDialogを呼び出す別のコントロールに if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) Label.Text = folderBrowserDialog.SelectedPath; などと記載するしかないのでしょうか?
>>979 いかにもその通り
folderBrowserDialogのヘルプ見りゃあ何故か分かる
984 :
デフォルトの名無しさん :2013/10/07(月) 23:53:53.86
MSDN上、日本語は4.0から、英語は3.5からIOExceptionに含む事になってるね。 この辺あんま信用してない、気にするだけ無駄かと。
>>974 thanx
動いてたプロセスが32bitだったからx64でビルドしなおしたらうまいこと動いたので多分変換してるので正解
何かもう自分で動かすだけだからこれでいいや
うめ
うめ
うめたろう
うめざむらい
ここ掘れわんわん
うめてんて
まだ質問できるだろ。 無駄に埋めるな!
無駄なレスはやめよう!
そうだそうだ
ほむほむ
VS2012とVS2013のC#の違いって、見やすくなるくらいで 出来ることは全く変わらないのでしょうか?
畳と女房は新しい方がいい
うまい
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。