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


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



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

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#は良く出来てる

752 名前:デフォルトの名無しさん (ワッチョイ 7fbb-8lb6) mailto:sage [2017/02/23(木) 22:21:06.99 ID:SDiG8DJL0.net]
var data = b.GetData();

varで一気に欠陥言語となった。
ライブラリ丸暗記してるか、マウスカーソルで指さないと型が分からないとかマジ欠陥言語。

753 名前:デフォルトの名無しさん (ワッチョイ 533c-uVIS) mailto:sage [2017/02/23(木) 22:21:19.22 ID:VhvYxHZG0.net]
何を使おうが、成果物と生産性が全てよ

そりゃ、言語によってある程度機能の優劣が無いとは言わないが
究極的には、「使う奴がその言語に習熟してるかどうか」に帰結する話なので
他言語との比較戦争はやめとけ

754 名前:デフォルトの名無しさん (ワッチョイ cfd6-8lb6) mailto:sage [2017/02/23(木) 22:25:13.45 ID:/zzReBsa0.net]
>>738
おじいちゃんはおうちにかえりましょうねー

755 名前:デフォルトの名無しさん (ワッチョイ 7fbb-8lb6) mailto:sage [2017/02/23(木) 22:30:40.75 ID:SDiG8DJL0.net]
>>740
無職はいいなぁ。

756 名前:デフォルトの名無しさん (ワッチョイ 2777-h8GH) mailto:sage [2017/02/23(木) 22:32:06.38 ID:Gcuw8dft0.net]
>>738
C++にすら、autoって型推論が追加になったわけだが。

757 名前:デフォルトの名無しさん (ワッチョイ bb99-bdSd) mailto:sage [2017/02/23(木) 22:34:18.39 ID:OjaB8M7n0.net]
え?型推論のない言語があるの?



758 名前:デフォルトの名無しさん (ワンミングク MMfa-LqKA) mailto:sage [2017/02/23(木) 22:34:28.26 ID:osMc+8cAM.net]
varがダメな人って変数のスコープがやたら長かったりクラスの責務が複数あったりメソッド名がわかりにくい印象がある

759 名前:デフォルトの名無しさん (ワッチョイ 7fbb-8lb6) mailto:sage [2017/02/23(木) 22:40:33.39 ID:SDiG8DJL0.net]
はるか昔、C++も糞化、オナニー言語になって捨てられて、シンプル化したJavaやC#に多くが逃げてきた。
すると、言語オタク馬鹿がJavaとC#でオナニーを始めたというだけ。
C#は幸運にも普及する前に糞化してくれたので被害者は少ないが、Javaは相当被害者が出るだろう。

まぁ、未だ.net2.0 + winform案件の多さからしてほんとトンデモ擁護してる輩は無職だろうな。






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

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

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