1 名前:デフォルトの名無しさん (ワッチョイ 5394-4hBO) mailto:sage [2016/12/27(火) 02:07:41.47 ID:HrGPkQcW0.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part125 echo.2ch.net/test/read.cgi/tech/1475930006/ ■関連スレ C#, C♯, C#相談室 Part91 echo.2ch.net/test/read.cgi/tech/1467211515/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configure
651 名前:デフォルトの名無しさん (ワッチョイ 3b3c-P9CU) mailto:sage [2017/02/16(木) 10:57:00.19 ID:/E7gOtLl0.net] >>638 これは参考になりそうです。ありがとうございます。
652 名前:デフォルトの名無しさん (オッペケ Sr9f-PPpI) mailto:sage [2017/02/16(木) 12:50:57.39 ID:Fl7cxYnSr.net] WebBrowserって今後もずっとIEなのかね? Edgeにはならないんだ?
653 名前:デフォルトの名無しさん (ブーイモ MM7f-FKuk) mailto:sage [2017/02/16(木) 15:05:24.57 ID:SJI/N2PkM.net] 絶対にない WinFormsが業務向けのプラットフォームであること、既に開発が終了していることを忘れてはいけない
654 名前:デフォルトの名無しさん (ワッチョイ 8bbb-eq+O) mailto:sage [2017/02/16(木) 15:33:56.56 ID:QchVkuhj0.net] 結局、Winform最強か。
655 名前:デフォルトの名無しさん (アウアウオー Sa7f-xIS6) mailto:sage [2017/02/16(木) 16:23:17.22 ID:/R92/z+7a.net] WebBrowserコントロールはIWebBrowserのだからIEのままでしょ EditコントロールがEditで、リッチエディットコントロールになってないのと似たようなもん WindowsUI.Xaml.WebViewかそんなとこでEdgeコントロールとしてはもう既に実装されてるんじゃないのかな
656 名前:デフォルトの名無しさん (オッペケ Sr9f-PPpI) mailto:sage [2017/02/16(木) 17:18:26.44 ID:Fl7cxYnSr.net] そうなのかあ しかし困る人多いよね
657 名前:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C) mailto:sage [2017/02/16(木) 18:03:45.
] [ここ壊れてます]
658 名前:02 ID:nVGauASoa.net mailto: まだXP使ってるところだって山ほどあるのに7/8.xを考えなくてよくなるのなんか何年後よ [] [ここ壊れてます]
659 名前:デフォルトの名無しさん (ワッチョイ 4bd6-eq+O) mailto:sage [2017/02/16(木) 18:53:57.26 ID:yaBP1ZBT0.net] レジストリいじればEdge相当になったはず
660 名前:デフォルトの名無しさん (ワッチョイ 0f9d-eq+O) mailto:sage [2017/02/16(木) 19:19:37.31 ID:cjCClO980.net] WinFormsの開発再開すればいいのにね
661 名前:デフォルトの名無しさん (オッペケ Sr9f-PPpI) mailto:sage [2017/02/16(木) 19:33:08.37 ID:Fl7cxYnSr.net] >>647 そうなのかー しかしユーザーがEdge持ってるとは限らないから面倒だね
662 名前:610 (ワッチョイ 9b90-XdR7) mailto:sage [2017/02/17(金) 23:35:39.67 ID:8hvoyQw40.net] レス遅くなってしまってすいません >>618 の後半なんですが、 1,候補の中の確定できない数字をとりあえず入れてみる 2.次のマスに移動、数値が入れられなかったら1に戻る この繰り返しですよね?もしこれを複数回繰り返して戻らない場合2回以上前に入れた数値まで戻らないといけない場合ってありますか?
663 名前:デフォルトの名無しさん (ワッチョイ 0f42-1n7Z) mailto:sage [2017/02/18(土) 02:25:11.55 ID:f0aH9wlg0.net] >>650 2の手順は1に戻るじゃなくて1つ前に数字を入れたマスに戻るだね 1個前に入れたマスに戻って別の数字を探しても見つからなければ更に1個前に戻る これを繰り返す 当然戻りまくって最初のマスに戻ることもある最初に入れた仮数字が間違ってたってことだから 要は全数字を入れるパターンを検索して矛盾が出ないパターンを求めてる ただし途中で矛盾が出たら以降はそのパターンに紐づく内容は無視することで大幅に検索回数を削減できて結果的にコンピュータレベルの計算速度を用いればそれなりの速度で検索可能って寸法 理解が難しければ空きマスが超少ない問題で手を使って動きを確かめてみると良いかも 別にこの問題に限った話ではないけど大抵のプログラムは原理を理解できないと実装できないからね
664 名前:610 (ワッチョイ 9b90-XdR7) mailto:sage [2017/02/18(土) 03:12:52.58 ID:zyhHTWXk0.net] >>651 原理はわかってはいるつもりなんですが、どう書けばいいのかわかりません 1、4、7と入れてきて7の次に入れるものがない場合、4を変更しないといけないわけですがこれをどうやって渡すか またもう一つ戻らないといけない場合、自分の理解の範疇を超えオーバーフローしてしまいます 他人のソースを読んでも頭に入ってきません
665 名前:デフォルトの名無しさん (ワッチョイ 0f42-1n7Z) mailto:sage [2017/02/18(土) 04:35:14.78 ID:f0aH9wlg0.net] >>652 あらま、その段階か 例えば仮数字を入れて次に進む時、今仮数字を入れた場所を記憶しておく配列を用意しておくとかどうだろう 進むたびに配列に仮数字を入れた場所が順次追加されていく感じ 戻る時は後ろから順に見ていけばいい 戻ってまた進む時は用意した配列を再度進むところから上書きする感じ 「5」番目のマスに1を入れた 「8」番目のマスに4を入れた 「10」番目のマスに入れられる数字がない 「8」番目に戻る 8番目には4が入ってるけどダメらしいので5以降で置ける数字無いか確認 それでも無ければ「5」番目に戻る 用意する配列には「5 8 10」って入ってるってことね この配列のどこを今操作しているか?を指し示す変数もあったほうが分かりやすいかもね ○番目って言うのは左上のマスを1、右下のマスを81と仮定しての話ね XYで管理してるならこの配列を2次元にしても良い そんな効率良い方法じゃないけど直感的には理解はしやすいかと思うけどどうだろう 他に何か分かりやすい案があるかもしれん
666 名前:610 (ワッチョイ 6b90-XdR7) mailto:sage [2017/02/18(土) 06:29:59.40 ID:ULV0oBLe0.net] >>653 ありがとうございます、これだと書ける気がします あと配列の中にある値のインデックスをLINQで取得しているのを拡張メソッドで定義したいですがうまくいきません First()やCount()の定義を見よう見真似で書きましたが、Whereに何を入れたらいいのかわかりません public static Type Index<Type>(this IEnumerable<Type> source, Func<Type, bool> predicate) where Type : IEnumerable<Type> { return source.Select((value, index) => new { Index = index, Value = value }) .Where(item => ) .Select(item => item.Value).FirstOrDefault(); } ひょっとして述語は引数として受けられませんか?
667 名前:デフォルトの名無しさん (ワッチョイ 8b7b-eq+O) mailto:sage [2017/02/18(土) 08:10:24.40 ID:bn0z7G5m0.net] あえてLinqで書くならこうかな?でもこういう場合foreachで書く方が速いし自然だと思う public static int Index<T>(this IEnumerable<T> source, Func<T, bool> predicate) { try { return source.Select((value, index) => new { Index = index, Value = value }) .First(item => predicate(item.Value)).Index; } catch (InvalidOperationException) { return -1; } }
668 名前:デフォルトの名無しさん (ワッチョイ 0f42-1n7Z) mailto:sage [2017/02/18(土) 09:33:35.33 ID:f0aH9wlg0.net] プログラム初心者だと思ってたら突然linqでてきてワロタ 俺には>>653 の説明でなんで>>654 に行けたか不思議だよ linqは奥が深いけど面白いね
669 名前:デフォルトの名無しさん (ワッチョイ 9b7b-g7u9) [2017/02/18(土) 12:02:11.53 ID:H3MLhpM30.net] OpenFileDialog.ShowDialogを使用するとフリーズします。 昔からある障害のようなんですが、 >cymon.sysというファイルの排他制御関連の処理に不具合があるのが原因 らしいのですが、該当ファイルはありません。 他のアプリの排他制御関連のバグなんて特定出来る気がしません。 どうすれば正常に動かせますか?
670 名前:デフォルトの名無しさん (スププ Sd7f-6bgE) mailto:sage [2017/02/18(土) 12:12:10.55 ID:F1GmP7Hpd.net] >>657 もうちょい詳しく。 再現するOSや、不具合が再現するソースとかないん?
671 名前:デフォルトの名無しさん (ワッチョイ 0f7b-TuOZ) mailto:sage [2017/02/18(土) 12:18:44.45 ID:AobYyoSr0.net] ニコリの数独・カックロを、力任せに解く方法か? バックトラック法だろ 「バックトラック法 数独」で検索!
672 名前:デフォルトの名無しさん (ワッチョイ 0f9d-eq+O) mailto:sage [2017/02/18(土) 12:19:58.05 ID:7QDYBSyf0.net] >>657 https://www.cyphertec.co.jp/news/cymon_revision.html これのことだとしたら、修正プログラム入れるしかないのでは? cymon.sysが本当に存在しないならもっと情報が必要だね
673 名前:デフォルトの名無しさん (JP 0H1f-vlft) mailto:sage [2017/02/18(土) 12:43:04.59 ID:1c96nb+dH.net] 特定のソフト入れた時にそのソフトのバグで干渉するってだけやん 入れてないなら関係ないし入れてるなら メーカーの修正あてるかアンインストールするかの2択やろ
674 名前:デフォルトの名無しさん (ワッチョイ fb0d-NHlF) [2017/02/18(土) 14:47:28.87 ID:lgYaiLIy0.net] CookieContainerの中身をWPFのDataGridで表示したいのですがどうすればいいですか?
675 名前:デフォルトの名無しさん (ワッチョイ df4c-6bgE) mailto:sage [2017/02/18(土) 15:01:37.60 ID:oF9zQOK10.net] そこでデーターバインディングでづよ
676 名前:デフォルトの名無しさん (ワッチョイ df4c-6bgE) mailto:sage [2017/02/18(土) 15:25:02.48 ID:oF9zQOK10.net] CookieCollection collection = new CookieCollection(); for (int i = 0; i < 16; i++) { collection.Add(new Cookie() { Name = i.ToString() }); } dataGrid.ItemsSource = collection;
677 名前:デフォルトの名無しさん (ワッチョイ df4c-6bgE) mailto:sage [2017/02/18(土) 15:25:23.75 ID:oF9zQOK10.net] あとは自分で
678 名前:デフォルトの名無しさん (ワッチョイ fb0d-NHlF) [2017/02/18(土) 19:51:02.62 ID:lgYaiLIy0.net] CookieContainerをBindingさせるのは無理なんですね そうなるとCookieContainerからCookieCollectionを取り出す必要が出てきますが どうすれば関連付けされているUriを使わずにCookieCollectionを取り出せますか?(forやforeachを使いたい)
679 名前:デフォルトの名無しさん (ワッチョイ 0f7b-eq+O) mailto:sage [2017/02/19(日) 01:31:58.50 ID:bXEy6Thf0.net] 他のツールなんかで動画とか音楽ををダウンロードしながらそれを開いて 先頭から順に読み込むツールを作ろうと思ってるんだけど System.IO.FileStream fs = new System.IO.FileStream(@"C:\test.mp3",System.IO.FileMode.Open) 例えばこんな感じでmp3を開くとした場合って開いた瞬間のデータ量しか取得できないですよね? 増えていってるデータを順に取得していくいい方法って無いですかね?
680 名前:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C) mailto:sage [2017/02/19(日) 02:03:05.71 ID:6CKE/L0Oa.net] >>667 タイマーでも使ってポーリングするだけじゃないの?
681 名前:デフォルトの名無しさん (ワッチョイ 8bbb-eq+O) [2017/02/19(日) 05:52:50.50 ID:mRSsjBQo0.net] 日本ではダウロンードは違法。
682 名前:デフォルトの名無しさん (ワッチョイ 6f20-eq+O) [2017/02/19(日) 10:21:49.03 ID:7g+LYPG/0.net] 音声合成APIを使ってみたくて 下記のサンプルコードを実行したのですが 音声が再生された後にプログラムが終了せず 残っています どのようにすれば音声再生後にプログラムが 終了するでしょうか? static void Main(string[] args) { var player = new SoundPlayer(); var http = new HttpClient(); // BASIC認証 http.DefaultRequestHeaders.Add("Authorization" , "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes("hoge"))); // POST要求 http.PostAsync("https://api.voicetext.jp/v1/tts", new FormUrlEncodedContent( new[]{ // リクエストパラメータ new KeyValuePair<string , string>( "text" , "test" ), new KeyValuePair<string , string>( "speaker" , "haruka" ), } )).ContinueWith(async task => { // 音声データでない場合、例外が発生するので、適切な対処すべき… player.Stream = await task.Result.Content.ReadAsStreamAsync(); player.Play(); }); Console.ReadLine(); }
683 名前:デフォルトの名無しさん (ワッチョイ eb1e-1BHe) mailto:sage [2017/02/19(日) 10:29:46.11 ID:FVPzcms80.net] >>670 再生後、コンソールでEnterキーを押す または最後のConsole.ReadLineを削除
684 名前:デフォルトの名無しさん (ワッチョイ eb77-B7Z5) mailto:sage [2017/02/19(日) 10:37:13.44 ID:gToSbtQT0.net] >>671 後者じゃ、再生終わる前に終了しないかな
685 名前:669 (ワッチョイ 6f20-eq+O) [2017/02/19(日) 10:41:11.22 ID:7g+LYPG/0.net] Console.ReadLineの削除で プログラムが終了したので悩みが解消したのですが、 音声再生が開始される前にプログラムが終了するという 新しい悩みが生まれました 音声再生の完了をコールバック等で受け取る方法は あるでしょうか?
686 名前:デフォルトの名無しさん (ワッチョイ eb77-B7Z5) mailto:sage [2017/02/19(日) 10:54:41.14 ID:gToSbtQT0.net] >>673 player.Play();の次の行にEnvironment.Exit(0);でどうですか
687 名前:デフォルトの名無しさん (ワッチョイ 6f20-eq+O) [2017/02/19(日) 11:06:34.51 ID:7g+LYPG/0.net] >>674 試してみましたが、音声再生前にプログラムが終了しました javascriptなら、コールバックとか取れそうですが C#はいまひとつ解らず
688 名前:デフォルトの名無しさん (ワッチョイ 6bdc-fFgi) mailto:sage [2017/02/19(日) 11:11:22.59 ID:7Avz8j0c0.net] 最後にTask.Waitしろ
689 名前:デフォルトの名無しさん (ワッチョイ eb77-B7Z5) mailto:sage [2017/02/19(日) 11:28:40.83 ID:gToSbtQT0.net] >>675 >>674 やった上で、player.Play()をplayer.PlaySync()に書き換えて
690 名前:デフォルトの名無しさん (ワッチョイ 6f20-eq+O) [2017/02/19(日) 11:35:24.12 ID:7g+LYPG/0.net] player.Play(); task.Wait(); と書いてみたのですが 音声が再生される前に プログラムが終了します URIにPOSTする処理は リクエストしたら状態が取れないのかなという 気がしています
691 名前:デフォルトの名無しさん (ワッチョイ 6f20-eq+O) [2017/02/19(日) 11:38:27.06 ID:7g+LYPG/0.net] >>677 player.PlaySync(); Environment.Exit(0); としましたが、音声再生の前に プログラムが終了しました
692 名前:デフォルトの名無しさん (ワッチョイ eb77-B7Z5) mailto:sage [2017/02/19(日) 11:40:39.60 ID:gToSbtQT0.net] >>679 元のConsole.ReadLine();消してちゃってない? これも必要だよ。
693 名前:デフォルトの名無しさん (ワッチョイ 6f20-eq+O) [2017/02/19(日) 11:48:07.03 ID:7g+LYPG/0.net] >>680 音声再生の後にプログラムが終了しました 期待通りの動作です ありがとうございます
694 名前:デフォルトの名無しさん (ワッチョイ 0f7b-eq+O) mailto:sage [2017/02/19(日) 17:21:32.80 ID:bXEy6Thf0.net] >>668 まだ勉強し始めた素人なのでポーリングというやり方があるんですね。 試してみます、ありがとうございました。 >>669 再生が最後まで行く、もしくはソフトを閉じる時に消去すれば キャッシュという形になるから違法ではないと思いますし、 たしかあの法律は違法にアップロードされたコンテンツ(ゲームや音楽)を 知りつつダウンロードする行為が違法なんですよね? YouTubeやTwitch、ニコ生などのライブ配信や動画を専ブラのような形で なおかつ自分で使いやすいように作るのは違法でないという認識なのですが間違っていますでしょうか?
695 名前:デフォルトの名無しさん (ワッチョイ 5b19-S9Lo) mailto:sage [2017/02/19(日) 17:23:40.86 ID:djgzWXGW0.net] 保存しなきゃセーフでしょ ブラウザを作るのに認可がいるわけじゃないし
696 名前:610 (ワッチョイ 6b90-XdR7) mailto:sage [2017/02/20(月) 01:42:50.37 ID:Vf7595PK0.net] >>655 foreachで書く方法がわかりません、どんなふうに書くのでしょうか? あと条件にあったインデックスを全て返す拡張メソッドを作りたいのですが、うまくいきません int{} num = { 11, 12, 13, 14, 15 } これで条件を「x > 12」にした場合「2、3、4」と返ってきてほしいのですがチャレンジしてもできません return source.Select((value, index) => {if(predicate(value) return index; return 0; }) こういうふうにを書くと「x > 12」の場合「0,0,2,3,4」と返ってきてしまいます どうかけばいいかヒント教えてください
697 名前:デフォルトの名無しさん (ワッチョイ eb77-B7Z5) mailto:sage [2017/02/20(月) 02:30:59.52 ID:M2SnzGbV0.net] >>684 値が要らない項目は、Select()する前にWhere()で弾いとかないと。
698 名前:610 (ワッチョイ 6b90-XdR7) mailto:sage [2017/02/20(月) 03:25:39.28 ID:Vf7595PK0.net] public static IEnumerable<int> IndexCollection(IEnumerable<Type> source, Func<Type, bool> predicate) { return source.Where(_ => predicate(_)).Select((value, index) => index); } こういうことですか?でもなぜかこう書くと評価されなくて返り値がnullのままになります var list = num.Where(_ => _ > 12).Select((value, index) => index); こう書くときちんと評価されるのですが・・・さっぱりわかりません
699 名前:デフォルトの名無しさん (ワッチョイ 8b7b-eq+O) mailto:sage [2017/02/20(月) 03:28:01.67 ID:Cim83SJm0.net] >>684 別に難しくなくて、素直に書けばいいと思うけど public static int FirstIndex<T>(this IEnumerable<T> source, Func<T, bool> predicate) { int index = 0; foreach (var val in source) { if (predicate(val)) return index; index++; } return -1; } 条件にあったのも全て返すなら yield return を使う public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> source, Func<T, bool> predicate) { int index = 0; foreach (var val in source) { if (predicate(val)) yield return index; index++; } }
700 名前:デフォルトの名無しさん (ワッチョイ 8b7b-eq+O) mailto:sage [2017/02/20(月) 03:33:55.65 ID:Cim83SJm0.net] 無理矢理Linqで書くならこんな感じだろうか public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> source, Func<T, bool> predicate) { return source.Select((value, index) => new { Index = index, Value = value }) .Where(x => predicate(x.Value)).Select(x => x.Index); } 値が0以上限定ならこんな風にも書ける public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> source, Func<T, bool> predicate) { return source.Select((value, index) => predicate(value) ? index : -1) .Where(x => x >= 0); }
701 名前:デフォルトの名無しさん (ワッチョイ 8b7b-eq+O) mailto:sage [2017/02/20(月) 04:12:20.09 ID:Cim83SJm0.net] >>686 IndexCollectionの後に<Type>が抜けてるね。あと引数のthisも抜けてる Linqに慣れてないなら、最初から繋げていかないで一個ずつ結果を見た方がいいよ var a = num.Where(_ => _ > 12); var b = a.Select((value, index) => index); ここではaが {13, 14, 15 } ってリストになる(Whereは条件式でフィルタした新しい配列を作る) bはその配列をインデックスの値に変換した新しいリストを返すから値は { 0, 1, 2 } となる あと勘違いしてたけどインデックスは当然0以上なので>>688 の後者の書き方で問題なかった
702 名前:デフォルトの名無しさん (ワッチョイ 8bbb-eq+O) [2017/02/20(月) 07:23:54.57 ID:73+nzjfL0.net] >>683 日本では回避ツール作るのも違法。
703 名前:610 (ワッチョイ 6b90-XdR7) mailto:sage [2017/02/20(月) 10:04:48.66 ID:Vf7595PK0.net] >>687 yield returnというのを忘れていました 引数のthisを忘れていたのに拡張メソッドみたいに呼べたのが不思議です。エラー出ると思ってました
704 名前:デフォルトの名無しさん (ワントンキン MM7f-Z7AI) mailto:sage [2017/02/20(月) 11:08:17.98 ID:M0lXkX5gM.net] 文字列ポインタを返すC言語のwin32 dll を VS2005のWindowsアプリで利用しているのですが、今までWindowsXPで動作していたものをWindows7で動作させると関数から戻ってくる時に死んでしまいます。情報を送信する旨のダイアログの出るヤツです。 <hoge.dll> BYTE msg[1024]; BYTE* WINAPI hoge(WORD w) { sprintf(msg, "xxx"); return msg; } <FormMain.vb> <DllImport("hoge.dll")>Public Shared Sub hoge(Byval w As Int16) As String End Function Dim msg As String = Space(1024) Call部分-> msg = hoge(0) dllで領域確保した文字列ポインタをvbで領域確保したString型に代入している部分がおかしいのでしょうか? 同じやり方の別アプリはWindows7でも問題なく動作しているらしいです。 回避策としては、StringBuilderを引数にして情報を取得する方法を考えてますが、原因を知りたいです。 何かヒントを頂けないでしょうか。よろしくお願いします。
705 名前:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C) mailto:sage [2017/02/20(月) 12:12:58.76 ID:OgBdAYpra.net] >>692 ここC#のスレだよw インポートした関数のシグネチャはそれで間違ってないと思う (戻り値の文字列の種類の明示的な指定がない以外は) だから間違いはそこに書かれていないところにある気がする 知らんけど
706 名前:デフォルトの名無しさん (ワントンキン MM7f-Z7AI) mailto:sage [2017/02/20(月) 13:06:34.63 ID:M0lXkX5gM.net] >>692 失礼しました。自分が普段C#使ってていつも見ているもので、思わず質問してしまいました。 Stringって純粋な参照型じゃないので、dll内の文字列がアプリ側の確保されたStringにコピーされるものなのか、どうなのか? と思って質問しました。 問題ないようですので、他の部分を当たってみます。 ありがとうございました。
707 名前:デフォルトの名無しさん (スフッ Sd7f-LjcY) mailto:sage [2017/02/20(月) 13:28:11.49 ID:vCAMt98Xd.net] ビット数とかかねえ
708 名前:デフォルトの名無しさん (ワッチョイ eb19-sbgu) mailto:sage [2017/02/20(月) 14:07:41.64 ID:w4qWsIgy0.net] DllImportで返値にStringを使うと対象アドレスのメモリを解放しようとするからその辺のせいかな ポインタが返される場合IntPtrで受け取るべき 文字列ならMarshal.PtrToStringAuto(/Ansi/Uni)で変換
709 名前:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C) mailto:sage [2017/02/20(月) 14:54:15.70 ID:OgBdAYpra.net] あーここにそんなこと書いてあるな https://msdn.microsoft.com/ja-jp/library/x3t
710 名前:xb6xc.aspx 全然知らんかったw 文字列を戻り値で返すような関数使ったことないし。 こういう重要な話を辺鄙なページにだけさらっと書くのやめてほしいよな 余計なお世話のようだけど、よく考えたらポインタでもらっておかないと 手動で開放しようがないんだからまあ当然といえば当然の処置か [] [ここ壊れてます]
711 名前:デフォルトの名無しさん (アウアウオー Sa7f-xIS6) mailto:sage [2017/02/20(月) 15:20:01.73 ID:2ibs+hQta.net] >>692 そのままでもvb側でLPCSTRだって指定してやれば動きそう。LPWSTRとして処理して動かなくなってるんじゃないかな
712 名前:デフォルトの名無しさん (ワッチョイ 8bbb-eq+O) mailto:sage [2017/02/20(月) 15:52:07.71 ID:73+nzjfL0.net] vb使うとアホになるからな。
713 名前:デフォルトの名無しさん (ワントンキン MM7f-Z7AI) mailto:sage [2017/02/20(月) 15:55:20.33 ID:M0lXkX5gM.net] >>696 >>697 有益な情報、ありがとうございました。 少なくとも、あまりよろしくないコードだったって事ですよね。 今までまともに動作してたのはたまたま? とりあえずIntPtrで受けてMarshal.PtrToStringAnsiで文字列に変換するとうまくいきました。
714 名前:デフォルトの名無しさん (ワキゲー MM7f-iYFJ) mailto:sage [2017/02/20(月) 19:15:05.48 ID:jZ2IzQ6sM.net] >>698 DllImport.CharSetの既定値はAnsi
715 名前:デフォルトの名無しさん (ワッチョイ 9b7b-g7u9) [2017/02/20(月) 20:06:09.92 ID:i/9URA2G0.net] WPFの勉強を始めたんですが、動的にコントロールを追加していく場合、 デザイン側(XAML)のコードではなくC#のコードに生成と追加ロジックを書いて増やすしかないんですよね? コントロールのデザインはXAMLでするけど、それのインスタンス生成はC#側でするという理解でいいのでしょうか?
716 名前:デフォルトの名無しさん (ワッチョイ 5f30-O7jY) mailto:sage [2017/02/20(月) 20:56:23.77 ID:DEynAIXr0.net] どういうコントロールかに寄るんじゃねーの ItemsControlが使えるようなケースならコードで生成なんかしないだろう
717 名前:デフォルトの名無しさん (ワッチョイ 8b7b-iYFJ) mailto:sage [2017/02/20(月) 20:59:03.92 ID:ZcW/L6QM0.net] 大体ItemsControlとその派生クラス+DataTemplateでまかなえる
718 名前:デフォルトの名無しさん (ワッチョイ df4c-6bgE) mailto:sage [2017/02/20(月) 21:18:59.61 ID:c6eY6nM80.net] >>702 アイテム類?
719 名前:デフォルトの名無しさん (ブーイモ MM7f-FKuk) mailto:sage [2017/02/20(月) 21:19:02.98 ID:La0YxfKFM.net] >>702 C#からコントロールを追加するんじゃなくて、 1. C#がコレクションに対してデータオブジェクト(コントロールではない!)を追加する 2. コレクションのバインド先のコントロールのDataTemplateに従ってコントロールが生成される という仕組み まあでも最近はUWPではそのへんのWPF時代の複雑怪奇な仕組みを使わずに イージーにC#からコントロールを触っちゃうケースも多くなっているので、 普通にコードビハインドでコントロール作ってもいいと思うよ
720 名前:デフォルトの名無しさん (ワッチョイ 6bdc-FKuk) mailto:sage [2017/02/20(月) 21:35:53.40 ID:K6NHiZ6b0.net] Reactみたいに仮想DOMを導入してテンプレートエンジン感覚でXAML書けるようにしてほしいわ ControlTemplateを駆使した複雑怪奇なバインディングはWPFが失敗した大きな要因の一つ
721 名前:610 (ワッチョイ 6b90-XdR7) mailto:sage [2017/02/20(月) 22:42:28.62 ID:Vf7595PK0.net] 数独を解くアルゴリズムがどうしても自分で作れなかったのでCのソースをLINQ使わずにC#に書き直しました でももうちょっとアルゴリズムについて理解を深めたいのですが、どうすれば深められますか?
722 名前:デフォルトの名無しさん (ワントンキン MM7f-yXFx) mailto:sage [2017/02/20(月) 22:44:42.03 ID:SIhte37HM.net] 数学を勉強する
723 名前:デフォルトの名無しさん (ワッチョイ 0f7b-TuOZ) mailto:sage [2017/02/20(月) 23:41:44.10 ID:mClGTBrk0.net] アルゴリズムの本を読むとか、 プログラミング・コンテスト AOJ(AIZU ONLINE JUDGE、会津大学) Topcoder, Google Code Jam
724 名前:デフォルトの名無しさん (ブーイモ MM7f-FKuk) mailto:sage [2017/02/21(火) 01:16:12.37 ID:zJ/N/+AdM.net] >>708 アルゴリズムで大事なのは細かい操作ではなくルール ルールで考えられるようになるには関数型言語を学ぶのが一番近道だと思う
725 名前:デフォルトの名無しさん (ワッチョイ 5b3c-8pXy) mailto:sage [2017/02/21(火) 02:14:21.50 ID:R0f1kRGV0.net] 専ブラを作りたいんですが 何を参考にやっていけば良いでしょうか c#の入門文法書を読んでVS2015でフォームアプリのプロジェクト作成しました
726 名前:デフォルトの名無しさん (スプッッ Sd7f-QCKt) mailto:sage [2017/02/21(火) 07:35:28.82 ID:N8MlGejAd.net] OpenJaneのソースを読む
727 名前:デフォルトの名無しさん (ブーイモ MM7f-9g8o) [2017/02/21(火) 08:20:20.91 ID:QZgbo1BXM.net] APIになってから新規参入できんの?
728 名前:デフォルトの名無しさん (ブーイモ MM1f-S2Ow) mailto:sage [2017/02/21(火) 10:29:01.70 ID:zahF8gYKM.net] 普通のブラウザが読めるんだから なにもAPI頼らんでもいいんじゃないか? ブラウザの表記と履歴がクソなだけだから それを使い勝手いいようにしただけの専ブラはあってもいい
729 名前:デフォルトの名無しさん (ワッチョイ 9b7b-g7u9) [2017/02/21(火) 19:34:36.64 ID:cHX/MaIe0.net] TextBoxだけが2つあるフォームで、Enterが押された際に、2つとも値が入力されている場合だけフォームを閉じるようにしたいのですが、 TextBoxにAcceptButtonと同じ機能を持たせるにはどうしたらいいでしょうか。
730 名前:デフォルトの名無しさん (ワッチョイ db17-QCKt) mailto:sage [2017/02/21(火) 20:40:59.99 ID:iji2PQkS0.net] KeyDownでEnterを取得してTextBoxの中身をチェックして分岐
731 名前:デフォルトの名無しさん (ワッチョイ 0f5e-P9CU) mailto:sage [2017/02/21(火) 20:48:25.46 ID:R7uSuoR20.net] >>716 TextBox2つとFormでEnter入力待って Enter入力されたときにTextBoxの内容チェックしたらいいだけじゃない? AcceptButtonは知らなかったけど別にボタン作って無いとだめみたいだし ボタン別に作った方がUIとしてはわかりやすいと思うけど
732 名前:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C) mailto:sage [2017/02/21(火) 21:36:29.50 ID:OY4bcTcha.net] >>716 いっちゃなんだけどセンスないUIだねw
733 名前:デフォルトの名無しさん (ワッチョイ 0f9d-eq+O) mailto:sage [2017/02/21(火) 21:41:21.06 ID:Kul562Pw0.net] >>715 APIに頼らずにウェブスクレイピングを使った専ブラの開発/公開は 禁止されているんじゃなかった?
734 名前:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C) mailto:sage [2017/02/21(火) 21:41:57.12 ID:OY4bcTcha.net] まあ批判するだけじゃアレなんで、そういうの普通はさ、 検証結果がOKならAcceptButtonをイネーブルにするのが正攻法だと思うよ
735 名前:デフォルトの名無しさん (アウアウオー Sa7f-xIS6) mailto:sage [2017/02/21(火) 21:48:44.09 ID:rWOcc73ca.net] センスないUIが使いやすいシーンあるからな。分かっててそうすること多い。>>717 は違うだろうがw エンターがあったら入力されてるか調べて、入力されてたらフラグ立ててClose()呼べば
736 名前:デフォルトの名無しさん (ワッチョイ 4fce-qUVP) mailto:sage [2017/02/22(水) 04:06:31.98 ID:BUDCRKLi0.net] 結局最後にEnter押させるならAcceptButtonで正しいか判定すればいいんじゃないの KeyDownで捕捉とかAcceptButtonイネーブルとかアホみたいよ
737 名前:デフォルトの名無しさん (ワッチョイ 5f90-XdR7) mailto:sage [2017/02/22(水) 04:41:08.56 ID:OP1dthjc0.net] まずtextbox2つに何か入力されている状態でEnter押すと閉じるってどういう状況で使うのか気になる
738 名前:デフォルトの名無しさん (ワッチョイ 0f7b-eq+O) mailto:sage [2017/02/22(水) 05:19:23.28 ID:4Le3p92K0.net] C#でDirectShowを使ってサーバーからデータを受信してストリーミング再生をしようと思っているのですが、 ストリーミングしながら再生する場合、10秒、20秒先にシークする時にデータを取得できていないと シークできないと思うのですが、シークしたい位置までデータが取得できているかどうかを、どうやって確認したらいいのでしょうか?
739 名前:デフォルトの名無しさん (ワッチョイ db17-QCKt) mailto:sage [2017/02/22(水) 06:36:28.96 ID:S8XiJiJW0.net] できなくていいじゃん YouTubeでも未取得部分までシークしたら一瞬止まってそこから再取得でしょ
740 名前:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C) mailto:sage [2017/02/22(水) 10:41:54.09 ID:IUleyyqVa.net] >>723 それだとNGの時何らかのメッセージを、ほとんどの場合はモーダルの メッセージボックスを使って表示することになるが、これが鬱陶しい。 だからOK
741 名前:フ場合のみ何らかのアクションが可能になるようにしたい、というところまでは >>716 は妥当。 [] [ここ壊れてます]
742 名前:デフォルトの名無しさん (アウアウオー Sa7f-xIS6) mailto:sage [2017/02/22(水) 10:48:43.23 ID:gHr01PmWa.net] 条件満たすまでokボタン無効化
743 名前:デフォルトの名無しさん (スフッ Sd7f-LjcY) mailto:sage [2017/02/22(水) 11:33:04.49 ID:+pPmbeWDd.net] ついでにtextbox赤色にでもしとけ
744 名前:デフォルトの名無しさん (ワッチョイ 6f37-eq+O) mailto:sage [2017/02/22(水) 13:11:12.83 ID:NE6Tq68d0.net] >>771 たしか「twinテール」とかいう使えなくなった2chブラウザがC#で書かれていたので参考にしてみてはいかが
745 名前:デフォルトの名無しさん (ワッチョイ 1e7b-8lb6) mailto:sage [2017/02/23(木) 01:11:41.53 ID:IxVO5ZJu0.net] >>726 言葉足らずでしたすいません。 シークした際に取得したデータより先であれば、シークできる最大の位置から再生したいので、 取得できているデータの最大秒数を知りたいと質問したかったんです。
746 名前:デフォルトの名無しさん (ワッチョイ 1e9d-d4M5) [2017/02/23(木) 20:19:27.12 ID:cRI54QPm0.net] C#ってWEBもデスクトップアプリもVisual Studioでいいの?
747 名前:デフォルトの名無しさん (ワッチョイ 4a3c-F6/z) mailto:sage [2017/02/23(木) 20:42:44.96 ID:boStFqTs0.net] いいよ 別にVisual Studioじゃなくてもいいよ
748 名前:デフォルトの名無しさん (ワッチョイ 7fbb-8lb6) mailto:sage [2017/02/23(木) 21:03:52.53 ID:SDiG8DJL0.net] C#のような欠陥言語はVSじゃないと使い物にならないよ。
749 名前:デフォルトの名無しさん (ブーイモ MMef-o4aT) mailto:sage [2017/02/23(木) 21:38:51.04 ID:5vR45Ym7M.net] そもそもRADで使うことを前提に設計された言語だから当たり前 ヘイトになってない
750 名前:デフォルトの名無しさん (スフッ Sdaa-i5z9) mailto:sage [2017/02/23(木) 22:14:55.27 ID:IXRr1zZLd.net] まだイーマックスに固執してる奴いるのか
751 名前:デフォルトの名無しさん (ワンミングク MMfa-LqKA) mailto:sage [2017/02/23(木) 22:19:16.99 ID:osMc+8cAM.net] Javaは環境整えるのめんどくさいしエコシステムが洗練されない素人仕事って感じだし言語機能貧弱だし色々クソすぎて速攻で切り捨てた C#は良く出来てる