[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/01 19:54 / Filesize : 272 KB / Number-of Response : 1014
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part91



1 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 23:45:15.36 ID:EZjVZgG6.net]
■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/

■コードを貼る場合はこちら
ideone.com/

■前スレ
C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1437808445/
C#, C♯, C#相談室 Part89
peace.2ch.net/test/read.cgi/tech/1443271409/
C#, C♯, C#相談室 Part90
echo.2ch.net/test/read.cgi/tech/1455160063/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。

272 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 10:37:02.45 ID:NgPgW0rj.net]
参照型とnull許容型は別の概念にするべきだったと言ってるし
現在、null非許容型を破壊的にならないように言語仕様を変えよう(追加しよう)としている。

将来を全て見通せる人は、いないと言う事だよ。

273 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 10:38:09.66 ID:Y223jndk.net]
>>262
> チェックなしでValueにアクセスしたら例外を投げる
ならはじめから例外でいいだろ

> Errorableという名前が見えることによってチェックを忘れるということを回避できる
マジで言ってるの?
チェックする箇所には変数名しか見えないんだが...
まあ IDE でいちいち型を確認すればいいんだろうけど、エラーチェック忘れるような奴はそう言う型の確認も忘れるわけで...

> チェックがめんどくさいという怠惰さには手の施しようがないがnullやエラーコードと違ってチェック方法が統一化できる点も優れている
たぶん思い付きで書いてるんだろうけど例えば Errorable<string> の
> if(s.AuthError) ...
って何を返すの?
自作のクラスで新しいエラー状態をチェックしたい時はどうするの?
いちいち Errorable を派生させたりしたらチェック方法が統一できないしどうするつもり?

274 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 10:40:19.54 ID:Y223jndk.net]
>>266
お前さんがそれでいいならなんの問題もない

275 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 10:48:41.71 ID:NgPgW0rj.net]
>>249
最近は若くても「老害」みたいな人が少なくないよね。

新しい事を覚える・勉強するのを嫌がる。
現状のやり方を変えるのを恐れる。
現状維持大好き。

良いか悪いは別問題だけど。

276 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 10:58:38.68 ID:wbF3tHCA.net]
>>268
初めから例外を投げるではチェックのためにtryを書かなければならない
パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切

変数の型が見えなくなるほど長いスコープは普通は書かないので考慮しなくて良い

エラーというのは幾つかの典型的なエラーに分類可能
例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
新しいエラーを定義する必要はない

277 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 11:34:52.66 ID:Y223jndk.net]
>>271
> パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切
まあ、これはいいとして

> 変数の型が見えなくなるほど長いスコープは普通は書かないので考慮しなくて良い
フィールドとかには使えないってことでいいかな?

> エラーというのは幾つかの典型的なエラーに分類可能
へー、すごいね w

> 例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
で、Errorable<string> の AuthError ってなにさ

> 新しいエラーを定義する必要はない
自称エスパーのお前はそうなんだろうね w

278 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 11:43:29.92 ID:lYnhz1xv.net]
null非許容型が追加されたら便利だなーとは思う
「nullをなくせ」という意見にはまったく賛同できないが

エラー許容型は、エラーの種類を enum で返すプロパティを付けたものをよく作る
(エラー種類ごとにプロパティ作るようなことはしない)
でも、nullで済む場合も多いんだよね

279 名前:デフォルトの名無しさん [2016/11/20(日) 11:43:53.85 ID:kKwT4/wt.net]
>>272
はぁ

今は返り値の話をしているんだろ
そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか

すごいっていうか、常識
人間がどんだけエラー処理と付き合ってきたと思ってるんだ?

AuthErrorは認証、認可のエラー
2chの書き込みだから横着して省略したがこれらは普通は別にする

nullを見ただけでエラー内容がわかる歴史上類を見ないほどに強力なエスパーの君にはかなわないよ
プログラマにしておくのは勿体無いから新しい宗教でも立ち上げることをお勧めするよ

280 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 11:47:36.19 ID:pCJ1qvOZ.net]
変数にエラーコードを入れるっていう発想がもうw



281 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 11:47:38.25 ID:GbOcvoRT.net]
>>266
その考えの場合はnullじゃなくて、""を返すのも良いかもね。

282 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 11:56:23.29 ID:Y223jndk.net]
>>274
> そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか
え?
オレオレスタイルをどや顔で言われても困るんだが w

> これらは普通は別にする
結局 Errorable<string> と Errorable<database> は別に作るってことかよ...
チェック方法が統一出来るとかほざいてたのにね w

283 名前:デフォルトの名無しさん [2016/11/20(日) 12:10:20.24 ID:kKwT4/wt.net]
>>277
はぁ

オレオレスタイルではなくオブジェクト指向の基本

別に作らないよ
君は超人的エスパーだから何をどう考えてそういう答えにたどり着いたのか常人にはちょっと理解しがたいんだ
これからはそのことを考慮して常人にもわかるように丁寧に意見して欲しい

284 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:10:41.53 ID:zFrmc+0J.net]
>>266
オラクルですね

285 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:23:00.48 ID:L/fyhMFX.net]
>>277
みっともないから、もう止めとけ。

286 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:30:03.99 ID:Y223jndk.net]
>>278
オレオレスタイルは宗教だろうから教祖さんと争う気はないよ w

で、
> これらは普通は別にする
の意味を説明してみ

287 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:30:42.62 ID:Y223jndk.net]
>>280
お前がな w

288 名前:デフォルトの名無しさん [2016/11/20(日) 12:37:01.76 ID:kKwT4/wt.net]
>>281
この文脈でauth errorと省略せずにauthentication errorとauthorization errorに分けるという意味以外に何があるんだ?
君は何をどう考えてErrorable<string>とErrorable<database>は別に作るという考えに到達したの?
ジェネリック型の新しい使い方を編み出したの?
ハイレベルすぎてついていけないよ
一体何段階思考手続きをスキップできればこの境地にたどり着けるのか

289 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:38:10.81 ID:aCqfb5MR.net]
数字の0が無かった時代に0の発明を否定する人みたいだな。

290 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:43:24.41 ID:h3zFIm5r.net]
何度も言うけどnullを追放したって問題Aが別の問題Bに置き換わるだけ。
そして普通に考えれば問題Bの悪質性はAより大きくなる場合の方が多いだろう。

nullガーって吠えてる馬鹿って何でこの程度のことが分からんかね。

(a) 値がnullであることで問題が顕在化した

からといって

(b) nullの存在が問題の原因

であるとは限らない。
この程度のことも分からない奴はプログラマ辞めろよ本当



291 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:45:41.10 ID:2ye3zmI2.net]
>>279
そう、
オレオレスタイルではなてく
オラクルスタイルだ。

292 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:53:48.90 ID:Jza3G5L3.net]
結局メソッドがエラーを返せるようにするにはどうするのが一番いいの?

293 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:54:07.99 ID:Y223jndk.net]
>>283
> この文脈でauth errorと省略せずにauthentication errorとauthorization errorに分けるという意味以外に何があるんだ?
そんな話は全くしてないが?
そんなのどうでもいいから
>> で、Errorable<string> の AuthError ってなにさ
の答えを書けよ w

294 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:54:12.13 ID:L/fyhMFX.net]
まさに、井の中の蛙 (´・ω・`)

295 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:57:21.73 ID:L/fyhMFX.net]
>>287
1つの手段は、エラー種類と「値」のタプルを返す。
これだと、エラー処理を強制は出来んけどね。

296 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:57:41.85 ID:Y223jndk.net]
>>289
上から目線で意味のないこと言ってるけどどうしたの?
ここ仮にも技術系の板だから話に加われないなら黙っていてくれるとありがたいんだが

297 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 17:21:32.25 ID:XK08TpAy.net]
エラーはほとんどの場合例外でいいよ
でも例外が使えない場面もあるんだよなぁ

298 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 18:54:25.34 ID:34y1pXq0.net]
>>287
エラーと言ってもいろんなレイヤーでいろんな事があるわけで
結論としてはケースバイケースでどれが一番とか決めれない

これを理解できずに単一の方法ですべてやろうとするからおかしな話になるわけで
まあ、宗教論はその宗旨に納得できる点がある場合もあるけど、他の宗教を認めないのがなぁ

299 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 19:03:56.76 ID:eCa9a5kv.net]
例外を投げないパターンはここらへんを読むといいんじゃない?
一般的とは行かなくても、オレオレではない
faithandbrave.hateblo.jp/entry/2014/05/30/153325
ufcpp.net/blog/2016/11/nullproblem/
www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4015.pdf

300 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 19:18:59.75 ID:V9rEuhsa.net]
nullable-likeの提案は良いね



301 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 19:26:56.04 ID:w/pS54nD.net]
nullを排除するために、何故ここまで複雑に作る必要があるのか理解出来ん
普通にnull使えよw

302 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 19:31:08.12 ID:34y1pXq0.net]
単にnullの取り扱いから、例外処理についてに話が拡大してるからな

303 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 19:46:59.71 ID:ELwGw4ow.net]
null排除派はごく一部いるけど市民権を得てない
メリットが薄いから

3 == i と言う書き方みたいにこだわる人だけこだわる

304 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 20:23:01.03 ID:JNgwCyth.net]
今後iOS開発の主流になるだろうSwiftがnull非許容ベースだから
将来的には分からないかもよ

305 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 20:32:56.89 ID:ixFUSBgZ.net]
信者にそんな話しても無駄

306 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 20:42:02.87 ID:RSV7nlYW.net]
null あってもいいって言ってるのはなきゃなでも構わない人が大半じゃないかと思う。
Swift が非許容でそれを使う必要があるなら、それの流儀でなんの苦もなく対応しそう。

そんなことに拘ってるのはオレオレな一部の人だけじゃねーのかなぁ。。

307 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 21:02:17.68 ID:2AHf550w.net]
異教徒にそんな話しても無駄

308 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 22:12:22.04 ID:eCa9a5kv.net]
>>296
それを言い出すとなにも言語仕様がいじれなくなっちゃう
Javaとかは進化が停滞して今必死に挽回してるし

もちろん、実装や文法の複雑さと利点を天秤にかけるのは常にしてるので、Roslynのissueとかを見てみると良いよ。
もっと変なのもたくさんある

qiita.com/koher/items/e4835bd429b88809ab33
を見るとわかるが、実際に各言語がnull安全に取り組んでる

309 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 23:25:18.49 ID:OrHcogku.net]
null安全ねえw
そういう発想をする人ってよくいう「例外を握りつぶす」コードを書いちゃうタイプなんだろうなとは思うわ。
言いたいことは理解できるが全く同意はできない。
それはただの錯誤だからな。

安全どころか、nullであれば容易に発見できたバグをわざわざ発見困難にするだけ。
何がうれしいんだそんなの。

310 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 00:24:21.34 ID:hlf3slD2.net]
ScalaのOption使ってみた感想
・今までは無効な値(null)を返す可能性がある事は、ドキュメントを読まないと分からなかったけど定義だけで分かるから便利
・分解が色々な方法で出来て便利
まあなくても何とかなるけど、あれば便利程度



311 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 01:11:30.92 ID:fZvEw43o.net]
F#にもoptionあるけど死ぬ程便利だわw
先ず、エラーを握り潰す事が出来ない。
ドキュメントを読む必要が無い。
monadとして扱うと、一々ifで分岐書く手間がなくなる。
eitherまで踏み込めば、検査例外云々で議論する事自体が馬鹿らしくなる。
面倒くさいけどねw

C#のint?を使った事ある人には解ると思う。
コンパイラに事前チェックをしてもらえる有り難みが。
機械に解る単純作業?に対して、人間が一々苦労する馬鹿らしさが。

312 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 01:16:13.30 ID:fZvEw43o.net]
それから、初心者に対してこそ効果抜群だよ。
「そう書く」事しか出来ないから。
強制出来るから。

313 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 01:34:00.10 ID:CO+aVjyU.net]
検査例外も出たときは素晴らしい機能だって絶賛されてたような気がするなぁ

314 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 02:03:53.66 ID:n+GSTHBL.net]
検査例外は他に誰も採用しなかったけど
Optionalはこぞって採用されているという決定的な違いがある

315 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 02:04:20.65 ID:n+GSTHBL.net]
あ、ごめん
C#perにそんなこと言っても分からないよね(苦笑)

316 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 11:12:26.42 ID:Ka0MFQDU.net]
ん?Optional?VBの話?

317 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 11:41:21.77 ID:hLpmxTjl.net]
グラディウスだろ

318 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 17:31:28.36 ID:fZvEw43o.net]
>>310
このスレにもいるような「老害」は少数派だよ



と信じたい。

319 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 20:45:41.48 ID:HLjti5+r.net]
実際、エラーの扱いは時代によって色々変わってきてるからね
null安全の手法はこれからの主流になっていくのかもしれない
そんで、また数年後には新しいやり方に置き換えられるんだろう

320 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 21:06:27.63 ID:4A1pLeCT.net]
エラーの扱いじゃなくてヒューマンエラーを未然に防ぐのが意図でしょnull安全ってのは。
その意図は認めるけど、null安全がその目的に対して合理的とは全く思わんがね



321 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 21:15:05.95 ID:fZvEw43o.net]
option型とnull安全は重なってる部分もあるけど、意味としてズレてる部分もある。
例えば、C#の値型でもoption型は有意義な訳で。

322 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 22:30:24.18 ID:wfKopLFy.net]
サードパーティーライブラリーを使えない前提でオブジェクトのマッピングを手軽に行うにはなにを使う?
パフォーマンスはあまり気にしていない
同名同型のプロパティをマッピングできれば十分
今のところシリアライザーで誤魔化してる感じ

323 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 00:16:30.64 ID:QATijxTL.net]
null安全よりstring?.lengthの方が合理的に見えるわ
最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな

324 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 06:51:43.66 ID:y8FHZWuV.net]
>>318
> 最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな
これには同意するけど

> null安全よりstring?.lengthの方が合理的に見えるわ
これはないわ
string が null になる可能性がないなら普通に string.length って書いた方がエラーが早期にわかるからデバッグも楽だし

325 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 07:50:04.91 ID:vhsrXRxU.net]
?.もnull安全の一環な気はする。

ちなみに、null非許容型導入の影響で、?.を使っていない箇所は全てwarning扱いになる話もあったりする。

326 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 13:10:29.71 ID:bfu4FZ0h.net]
string?.length
これって式の左辺に何書くの?

int? hoge
とか?
で結局hoge==nullとか聞いちゃうの?

?.演算子は参照型と値型のペアでは使いにくいし分かりにくいと思う

327 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 17:09:05.83 ID:EJKURZYz.net]
君ら一体何を議論してるの?
分かりやすく解説してくれ

328 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 17:11:14.76 ID:VnsYzvlz.net]
Optionalの是非というか使い所の話でないの?

329 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 19:57:46.66 ID:vhsrXRxU.net]
>>321
例えば
int len = str?.Length ?? 0;

330 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 20:13:33.64 ID:ga0p/qoV.net]
C++の参照は良いものだった



331 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 10:56:47.19 ID:Sj0D9A4Y.net]
>>325
なんで過去形?

332 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 11:55:24.93 ID:Sj0D9A4Y.net]
stackoverflow.com/questions/22595655/how-to-do-a-dictionary-reverse-lookup
このページで
dictionary.FirstOrDefault
とやっていますがディクショナリーにFirstOrDefaultを
やるとなぜこういう結果になるのですか?

333 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 13:27:10.63 ID:GLuKyrfg.net]
>>327
何を「何故」と思ってるか分からん

334 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 18:46:09.31 ID:QXjR6WNV.net]
>>327
Dictionaryは、IEnumerable<KeyValuePair>を実装しているから。

335 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 19:25:46.80 ID:Sj0D9A4Y.net]
>>328
FirstOrDefault って最初の要素を取って来るんじゃないんですか?
何故全ての要素をループ出来るんですか?

336 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 19:44:53.91 ID:GLuKyrfg.net]
>>330
『引数の条件に一致した』最初の要素ね。
内部的には列挙子で探してるよ。

337 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 19:48:19.93 ID:4RFw+AHR.net]
列挙子=enum ・・・

338 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 19:49:49.71 ID:dUmyuUeh.net]
列挙子はIEnumeratorですw

339 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 20:19:45.57 ID:Sj0D9A4Y.net]
>>331
そういうことですか。
良く分かりました。
皆さん、ありがとうございました。

340 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 20:45:31.10 ID:mr7aPRRr.net]
>>322
時代の流れについて行けないおじいちゃん達をいかに介護するかの議論だよww



341 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 09:15:21.21 ID:DNYUjCey.net]
プロジェクトA C#DLLライブラリ
プロジェクトB C#ASP.NETアプリケーション(Web サイト)
プロジェクトC C#ASP.NETアプリケーション(Web API)

BとCはAに依存している
BとCは別のサーバーにデプロイする
2つのサーバーにインストールされているフレームワークが異なる(具体的には4と4.5.1)
サーバー管理者の都合によりフレームワークの更新はできない

Bをビルドする時はAのフレームワークバージョンを4にする
Cをビルドする時はAのフレームワークバージョンを4.5.1にする

このビルド時のフレームワーク切り替え作業が手間なのでなんとかして1オペレーションでビルドできるようにしたい
なんとかなりませんか?

342 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 09:36:13.90 ID:iMAQMNBa.net]
そういうのは依存してるとは言わない

aだけビルドするsln、bcだけビルドするsln作っておいて
aだけビルドするabcのslnでbcはポストビルドイベントでコマンドラインビルド、
bcだけビルドするabcのslnでaはプリビルドイベントでコマンドラインビルドとか?

343 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 14:18:54.69 ID:G2Ig6Dqz.net]
>>336
Webサイトって、Webアプリとは違ってランタイム側でビルドするんじゃなかったっけ?

344 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 18:57:30.96 ID:/9TZdtP5.net]
>>336
プロジェクトCを4.0指定で実行させれば良いんじゃ

>>338
webサイトにもプリコンパイルってのがある
VSがサポートしてるのかどうかはしらんが

345 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 22:53:33.34 ID:5QlniI4z.net]
教えて下さい。

C# で Windows のサービスプログラムを書きました。
その中でプロセス間通信を使いたく、パイプ(NamedPipeServerStream/NamedPipeClientStream)の利用を考えました。

サービスプログラムはそのままだとデバッグが面倒なので、
そのサービスプログラムを参照したフォームプログラムを作ってバグ取りをしました。
フォームプログラムからは、ボタンを押すことでサービスの開始や停止の処理をそっくり呼ぶようにしています。

ここで、
・フォームプログラムでは、問題なくパイプの送受信が出来る
・サービスプログラムでは、パイプの送受信が出来

346 名前:ネい
 ただし、サービスを止めるときにパイプの待ち受けを終了させるために、同じプログラム内から送信するデータは送受信できている
 ⇒ 実際に待ち受けを抜けているので同プログラム内では出来ていると思われる

と言う状態になりました。
サービスプログラム内でプロセス間通信、この場合は名前付きパイプですが、の使用に制限などはあるのでしょうか。
他の要因を考えるべきか悩みました。情報があれば教えていただけると助かります。
[]
[ここ壊れてます]

347 名前:デフォルトの名無しさん mailto:sage [2016/11/25(金) 01:40:52.65 ID:gI/r9WkT.net]
>>340
セッション0のアクセス権限の問題。

namedpipeclientstream-can-not-access-to-namedpipeserverstream-under-session-0
stackoverflow.com/questions/13174660/

348 名前:デフォルトの名無しさん mailto:sage [2016/11/25(金) 10:25:47.20 ID:2+oHnkxr.net]
fw3.5からfw4.0以上のdllを参照する方法ないかなぁ?

349 名前:デフォルトの名無しさん mailto:sage [2016/11/25(金) 15:18:07.17 ID:6J0+Q2dT.net]
>>341
よくそんなのぱっと出てくるなあw

350 名前:340 mailto:sage [2016/11/25(金) 23:09:50.97 ID:Oc8F6euI.net]
>>341
やっぱりそういうのがあったんですね。。
対策を考えます。
ありがとう。



351 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 00:37:00.99 ID:pkHe6RQg.net]
上のリンク先の回答みたいにPipeSecurityとか適切に設定してやればいいんじゃないの

352 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 15:34:45.46 ID:w/Dhvdu8.net]
WindowsのAPIだからC#とは直接的には関係ないけど教えてほしい。
特定のウィンドウにキーボードイベントを送信しようと考えている。
keybd_eventを使用してキーボードイベントの送信する事は成功した。
ちなみに第二引数のスキャンコードは使用しない、みたいな事を書いてあるサイト(MSDN含む)が多かったが
スキャンコードを指定しないと対象アプリがキーボード処理を受け付けてくれなかったため指定してある。
対象アプリがバックグラウンド中であっても操作しようと考えてSendMessage(またはPostMessage)に変更しようとしたのだが
スキャンコードはどこにどのように設定すればいいのだろう?
第四引数のlParamであろうと言う事は想像がつくが、スキャンコードをそのまま設定しても駄目だった。

353 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 16:13:12.18 ID:dXHq99jt.net]
>>346
WM_KEYDOWNならこれ、カーソルキーとかも24ビット立てる必要があったかな
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646280
SendMessage(hWnd, WM_KEYDOWN, uCode, MapVirtualKey(uCode, 0) << 16 | 1)
とかそんな感じだったはず、離すときはWM_KEYUPにして32ビットを立てる

C++でWM_KEYDOWNイベントのlParamを吐くウィンドウプロシージャでも作ると良い

354 名前:347 mailto:sage [2016/11/26(土) 16:22:01.70 ID:dXHq99jt.net]
> 離すときはWM_KEYUPにして32ビットを立てる
うっかりミスった、30〜31ビットね
WM_KEYDOWN時のlParam | 0xC0000000する形

355 名前:347 mailto:sage [2016/11/26(土) 16:37:54.65 ID:dXHq99jt.net]
あ、そもそもC#でもウィンドウプロシージャオーバーライド出来たっけ
protected override void WndProc(ref Message m) {
base.WndProc(ref m);
if(0x0100 <= m.Msg && m.Msg <= 0x0102) Text = m.ToString();
}
とか適当なフォームでやれば実際のウィンドウメッセージが確認できるよ

356 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 17:19:55.67 ID:w/Dhvdu8.net]
>>347-349
非常に参考になった。
これを元にキー送信処理を作り直すことにするよ。

357 名前:340 mailto:sage [2016/11/26(土) 21:03:56.05 ID:ZtR+Z7Wd.net]
>>341,345
昨日はまだ調べていませんでした。
341 に書いていただいた URL の方法で普通に出来ました。
ありがとう。

358 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 21:23:49.80 ID:I1ny1q/I.net]
妙な質問だけど、今2ch以外でユーザー同士でC#関連の質問解答ができるコミュニティーって、

- MSDNフォーラム
- わんくまの掲示板
- DOBON.NETの掲示板

質問して答えが返ってきそうなのはこのぐらい?
あ、別にマルチで質問投げてやろうとかそういう意図ではないので念のため

359 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 00:18:17.41 ID:n0A2uJuC.net]
ja.stackoverflowはもう泣く以外の道ないなw

360 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 00:18:37.64 ID:VTugBhJZ.net]
>>352
StackOverflow一択だろ



361 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 00:23:13.14 ID:fF5TvHl5.net]
google翻訳少し賢くなったんだから「このページを翻訳する」で結構使える

362 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 01:04:22.51 ID:v97E8kC6.net]
>>352
最近はteratailもありかも
あとは、.NET共通のことならVB中学校も一応あり

363 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 01:42:44.60 ID:9T0ZytTv.net]
>>353-354
stackoverflowって日本語版もあったのかw
ありがとう

>>356
teratailはまったく知らなかったありがとう。

364 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 03:25:24.52 ID:PwcZf+No.net]
あとはQA@ITとか

365 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 04:33:07.21 ID:VTugBhJZ.net]
>>357
日本語限定ってどこかに書いてあったっけ?

366 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 19:31:45.97 ID:FcPInj/k.net]
>>359
>- MSDNフォーラム
>- わんくまの掲示板
>- DOBON.NETの掲示板
日本語って一目で分かるだろ

367 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 19:35:28.66 ID:MT+LNPN6.net]
落ち着けよハゲのブラザー

368 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 21:09:47.26 ID:SXoUdBtU.net]
>>354は stackoverflow.com のつもりで書いたが>>357は ja.stackoverflow.com を見つけて、
日本語版の存在を知らなかった>>354>>357を皮肉と受け取った。

369 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 21:23:26.86 ID:C8x/B1Vp.net]
>>360
バカの連鎖反応

370 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 21:35:12.23 ID:Efu8jG2p.net]
人脈作れば全部解決だろ
Xamarinユーザー見習えよ



371 名前:デフォルトの名無しさん mailto:sage [2016/11/28(月) 22:05:43.16 ID:/OQd0iyQ.net]
元の質問者の>>352だけど、質問の仕方がまずかったなら謝るけど
無意味に喧嘩腰でつっかかるのはどうかと思うよ

意図としては英語も排除しないけど日本語のを中心に教えて欲しかった。
英語は読むのは何とか読めても書く(質問する)のは結構つらいっすわ。

372 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 15:41:26.31 ID:07zLg605.net]
>>364
あのオタサー集団と同列に見られるのは非常に辛い






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<272KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef