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


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

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



1 名前:デフォルトの名無しさん [2018/12/15(土) 11:07:07.89 ID:0aSEF/I+0.net]
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1538646998/
■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

477 名前:デフォルトの名無しさん [2019/01/28(月) 16:43:45.23 ID:ji//xT0NF.net]
TCPsocketとか使う

478 名前:デフォルトの名無しさん [2019/01/29(火) 18:28:09.44 ID:lSFWGay90.net]
質問です
100msとかの短い間隔で繰り返す場合、
Systems.Timers.Timerを使って処理を繰り返すのと
while中にSleepかTask.Delayで間隔をとって繰り返すのとでは
どっちが処理がはやくて負荷が少ないですか?

またそれぞれのメリット・デメリットがあれば教えて欲しいです

479 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 18:32:52.89 ID:KZd0CVbOa.net]
回答待つ間にやってみたらいい

480 名前:L mailto:sage [2019/01/29(火) 18:47:23.89 ID:8rAEnTT80.net]
>>463
Sleep() 自体はそんなに積極的に使うべきものではない。ただし、
「逐次処理」で書いたほうが書きやすいような場合に使うと便利
な場合がある。例えば、単なる繰り返しではない、以下のように順にコードを
実行していくような場合:
(処理1)
(何かのフラグが変化するか、または単に時間が経つまで待機)
(処理2)
(何かのフラグが変化するか、または単に時間が経つまで待機)
(処理3)
・・・

ここで、処理1、処理2・・・の内容がほとんど同じような場合は、Timer を
使うべきだが全く違うようなものが10個も並ぶような場合だったら、Sleep()
を使うと楽。

SetEvent() などの同期オブジェクトを待つ WaitForSingleObject() などがサポート
されてない環境において、何かのフラグが立つのをポーリングして待たざるを得ない
ような時に、間に何も「はさまない」でループするとCPUがフルパワー状態で回って
しまって電気の無駄使いになるのが、Sleep() を「はさむ」と、Sleep()に指定する
待ち時間がたとえ短時間であっても、Sleep() の中で待ってる間は CPU が HLT 状態
になるので、電力消費を劇的に抑えることが出来る。
WaitForSingleObject() などが存在する環境では、Sleep() は余り使わないで良い。

481 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 18:47:44.92 ID:aKVTslCz0.net]
>>463
役割が全部違う
Sleep
指定時間の間は同じスレッドでのGUI等の入力が停止する
Sleep/Task.Delay
(実行後に)確実に指定した時間が停止する
Timer
指定した間隔で実行される

482 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 18:59:35.28 ID:8rAEnTT80.net]
【参考】
Sleep() の意味は、待つときに、HLT 命令を使うこと。HLT 命令は、特権命令なので
ユーザーランド(一般アプリ)のプロセスでは実行できないため、OSのAPIで実行して
貰うしかない。なお、マルチタスクOSで、HLT 命令を実行すると、他のプロセスに実行が
移ることが多い。

多くのアーキテクチャに置いて、HLT 命令は、「busy wait」で待つよりも、
劇的に電力消費と熱の発生を抑えることが出来る:

https://en.wikipedia.org/wiki/HLT_(x86_instruction)

Almost every modern processor instruction set includes an instruction or
sleep mode which halts the processor until more work needs to be done.
In interrupt-driven processors, this instruction halts the CPU until an
external interrupt is received. On most architectures, executing such
an instruction allows the processor to significantly reduce its power
usage and heat output, which is why it is commonly used instead of
busy waiting for sleeping and idling.

483 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 19:19:24.76 ID:BTNuwc+5a.net]
>>463
どっちにしろそんな違いがプログラムのパフォーマンスに影響なんかしないw
そもそも可読性よりパフォーマンスを優先する時代じゃない。
つまりより可読的な方法を選択すべき。

一定間隔で処理を繰り返すなら普通はタイマーを使った方が可読的でしょう、
繰り返し終了後に別の処理を継続させたい、みたいな事情があればあえてループ(つまりSleep)を
選択する場合もあるかもしれない

484 名前:デフォルトの名無しさん [2019/01/29(火) 20:17:02.92 ID:lSFWGay90.net]
>>465-468
みなさまありがとうございます。
特にSleepの解説は勉強になりました。

パフォーマンスも特に影響無いようで、
一定間隔で処理するのでTimerを利用することにします。

485 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 21:31:43.87 ID:ftdCQ0WJa.net]
this.Close()でアプリを終了させた時、
デバッグモードだとProgram.csの方でエラーが表示されますがこれは気にしなくていいエラーでしょうか?



486 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 22:05:21.74 ID:JPJ1HyJa0.net]
気にしなはれ

487 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 01:49:16.67 ID:DZ6eQREq0.net]
WinFormsのデスクトップアプリでVSyncを待つコードを教えてください
Unityなとのフレームワークやゲームエンジ、DirectXラッパーを
使うことは許されていません

488 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 04:02:46.09 ID:/8sJMxSkM.net]
>>472
無理に100ペリカ

489 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 07:29:11.42 ID:foE0k69S0.net]
>>472
P/Invoke禁止とは言われてないのだな

ではD3DKMTWaitForVerticalBlankEventを使いましょう
名前はD3Dとありますがgdi32にある関数なのでDirectXではないと
糞ルールを決めた上司に主張しましょう

490 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 08:12:13.35 ID:/B2wAYnE0.net]
>>468
可読性という理由でラムダ式の表記禁止して5,6段のネストは許されている俺社

491 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 08:37:51.08 ID:/+A/bmbGa.net]
可読性も人それぞれ

492 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 08:46:16.74 ID:hYqQd3E1d.net]
あるフォルダ(A)内に不定期に作成されるファイルを、ローカルのフォルダ(B)に一定間隔でコピーします(フォルダ内全てではなく、前回からの差分ファイルをコピー)。

今回コピーしたファイルを使って後続処理をしたいのですが、どのようにしたら今回コピーしたファイルだと判別できますか?ファイル名にはタイムスタンプが入っています。
コピー後にA内のファイルを削除などできず、コピーのみ可能です。

493 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 08:49:12.12 ID:/+A/bmbGa.net]
>>477
データベースにヒストリを保存すればよろしいかと

494 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 09:59:39.11 ID:E37rjQ75a.net]
>>477
別のフォルダに "<ファイル名>.trigger" みたいな一時ファイルを作って処理後に消せばいい

495 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 18:35:51.42 ID:hYqQd3E1d.net]
>>477
ありがとうございます。
コピー済みのファイル名をDBに保存しておき、そこにないファイルは新規ファイルとして処理する。
こんな判断になりそうです。



496 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 15:06:18.62 ID:k6O3ixIF0.net]
Unsafe.の質問ってここじゃ不適切だよね
と言ってもここ以外にまともなC#スレはないようだけど

497 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 16:28:47.69 ID:wgv6NCGX0.net]
相談室スレでもいいよ 多分回答者はこのスレと共通だけど

498 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 17:28:39.66 ID:hO+r/SI90.net]
Dictionary 型の自動ってないですか。

とあるキーに対してInsert/Updateするとき、
いちいち ContainKeys してから Add するかしないか、ってのがイケてないと思うのですが

dicHoge["Key"] = "hoge";

ってしたとき、Key がなかったら Add して、あったら値を差し替える、みたいな動きする標準クラスないですか?

499 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 17:42:31.36 ID:06DUsvP/ ]
[ここ壊れてます]

500 名前:0.net mailto: 何の話? []
[ここ壊れてます]

501 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 17:44:45.57 ID:KzsKuKr5M.net]
>>483
ConcurrentDictionaryのTryAddとかTryUpdateとか

502 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 17:46:25.97 ID:+2lIT2P6a.net]
>>483
自動って表現が新しいw

確かにそんなメソッドがあってもよさそうだけど、
たぶん分かりやすい命名がしづらい割には単純にRemove後のAddで
実現できちゃうから用意されてないんじゃないかなと想像

503 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 18:07:55.31 ID:zfSfgMG3d.net]
多分無いのかな?
「dictionary 拡張」で調べると拡張コードが出てくるからこの辺りから必要なのコピペして関数増やした方が早いかも

504 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 18:34:02.36 ID:wmh3wxbj0.net]
dicHoge["Key"] = "hoge";
これの何がダメなの?

505 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 19:16:07.42 ID:Is8hbjin0.net]
>>483
> dicHoge["Key"] = "hoge";
> ってしたとき、Key がなかったら Add して、あったら値を差し替える、みたいな動きする標準クラスないですか?
Dictionary<TKey, TValue>はまさにその挙動だが



506 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 19:16:34.95 ID:nQoHUWUF0.net]
何か別の言語と勘違いしてんのかな
C++のmapみたいに存在しないキーにアクセスしたら自動的に初期値が入ればいいなと思ったことはある

var d = new Dictionary<string, int>();
d["a"]++;

こういうのできたら楽

507 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 21:30:37.03 ID:yHmpMqGVM.net]
>>483
var

508 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 21:46:52.01 ID:2xzbyMOq0.net]
hashset

509 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 00:06:39.55 ID:1o0umz0dp.net]
拡張メソッド作ればええんちゃうか

510 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 00:37:05.77 ID:SfS6VrgI0.net]
そーいえば、ちょっと便利な Dictionary を作りたくて、これの完全ラッパーなクラスを作ったことあったな。
いまから考えれば無駄な労力だと思うが。w

511 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 00:46:34.52 ID:Lo/lI1+50.net]
そんでDictionaryのインデクサが要求そのまんまの挙動であることについてはどういう見解なのだ
なんでそんな質問したんだ
気になるだろ

512 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 01:27:01.49 ID:Melu7CRC0.net]
.Addメソッドも存在してるから
初見だと[]=valueがAddOrUpdateだとは思えないのはまぁ分かる

513 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 03:22:41.97 ID:V0cnsy7O0.net]
質問する前にちょこっと作って見ればすぐ分かるのに

514 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 12:54:05.03 ID:hIHuQnKx0.net]
>>474
ありがとうございます
D3DKMTWaitForVerticalBlankEvent に渡す
D3DKMT_WAITFORVERTICALBLANKEVENT の
以下の3つはどのように取得すればよいのでしょうか
D3DKMT_HANDLE hAdapter;
D3DKMT_HANDLE hDevice;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;

515 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 17:55:46.18 ID:mF+gwDus0.net]
var dicHoge = new Dictionary<string, string>();
dicHoge["Key"] = "hoge";

って、いきなり出来ちゃうんですか。
ダメと思って試しもしなかったです。



516 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 18:45:15.00 ID:9eIyz51RM.net]
System.Data.DataTable なんて使ったら悶絶しちゃうかもな

517 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 19:27:14.70 ID:Lo/lI1+50.net]
>>498
そのくらい自分でぐぐって調べろ
と突き放そうと思ったけど要望そのまんまのコードが出てきたのでまあええわ

https://github.com/fuse-open/fuse-studio/blob/master/Source/Fusion/Windows/VerticalSynchronization.cs

素直にIDXGIOutput::WaitForVBlank辺り使った方が良いと思うけどネ

518 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 12:37:02.16 ID:ZxPovaO5M.net]
>>495
俺も最近似たようなもんが欲しくなったときがある

・重複したときに別の処理が必要
・登録した順番が重要

ってときにDictionary自体使わんで
KeyValuePairのListばっかり使うようになった
つーのはログの出力まで出したいときに登録した順に出したいから
ログ出力するもんにはDictionary使わなくなった

519 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 15:42:40.54 ID:jpAIKS8U0.net]
ログ取ってるなら逆にDicで困らんと思うけど

520 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 15:49:56.24 ID:IKDI2S7C0.net]
>>503
入れたときじゃなくて別のタイミングで出したい
順番に保証がないと困る
って場面

521 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 15:58:01.30 ID:7GVwTPrN0.net]
ログ出力する時に並び替えるだけで済むのでは?

522 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 16:04:15.94 ID:IKDI2S7C0.net]
>>505
どうやって?

523 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 16:18:53.59 ID:LOT7/zBp0.net]
つかそれKeyは何なんだよ
それがキー項目である必要あるのか?

524 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 17:01:46.98 ID:cLU3XamPa.net]
>>504

dict[key] = value;
mySpecialLogger.Log($"dictに追加したぞ: {key}, {value}");

----

mySpecialLogger.Flush();

525 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 17:56:25.94 ID:EhLznF4nM.net]
SortedListやSortedDictionaryでいいだろ



526 名前:デフォルトの名無しさん mailto:sage [2019/02/03(日) 19:21:16.88 ID:ZOlWRYsg0.net]
登録順ならOrderedDictionary

527 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 11:39:31.27 ID:2YxD3k7B0.net]
>>501
できました、ありがとうございました
IDXGIOutput::WaitForVBlankは呼び出すまでがよくわからないし
P/Invokeだけでできるのかもわからないのでやめておきます

528 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 13:36:44.96 ID:AKeTBC2ia.net]
ReadOnly=trueのテキストボックスをクリックしてしまった時に
フォーカス映ってカーソルがチカチカしないようにしたいのですがプロパティ上で設定できないのでしょうか?

529 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 13:48:21.68 ID:B1LZYLJj0.net]
GotFocusのたびにWindowsAPIのHideCaretの呼び出しが必要じゃないかな

530 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 14:07:22.27 ID:/rUNKcNUa.net]
>>512
コピーを想定してそうなってるので、TextBoxを使うならその仕様は買えない方がよいのでは。
コピーなんかできなくてもいいなら素直にLabelを使いましょう。
BorderStyleやBackColorをいじればTextBoxに近い外見にも出来る

531 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 15:54:30.95 ID:AKeTBC2ia.net]
テキストボックスの上に後付けでボタン配置したので、ポインタずれて押しそこなった時にそんな感じになってしまったのです
まあ動作的にはなんの問題もないのではあるけど>>513のイベントハンドラ作ってみます
ありがとうございました

532 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 08:55:05.54 ID:3J1ruy+d0.net]
rar5をオンメモリで解凍、ストリーム取得できるライブラリは無いですか?

533 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 10:59:50.41 ID:svez8hxC0.net]
>>516
sharpcompressでそれっぽいことできてるな

https://www.nuget.org/packages/sharpcompress
https://github.com/adamhathcock/sharpcompress/blob/master/tests/SharpCompress.Test/Rar/RarReaderTests.cs

534 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 11:07:59.15 ID:svez8hxC0.net]
すまんrar5は未対応みたいなこと言ってるわ

535 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 11:21:25.96 ID:svez8hxC0.net]
ほんならこっち
7z.dllのラッパー
https://www.nuget.org/packages/SevenZipExtractor/
https://github.com/adoconnection/SevenZipExtractor/blob/master/README.md



536 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 12:48:55.07 ID:cT2SE72s0.net]
web上の画像をダウンロードせずに
高さと幅を取得する方法があれば教えてください

537 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 13:03:57.50 ID:GPC4C0Pm0.net]
電話で聞く

538 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 13:37:05.03 ID:RjbzZp8x0.net]
>>520
先頭だけ取得して解析するくらいが関の山じゃない?
https://developer.mozilla.org/ja/docs/Web/HTTP/Range_requests

539 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 15:25:13.53 ID:cT2SE72s0.net]
>>522
ありがとうございました

540 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 15:40:50.37 ID:3J1ruy+d0.net]
>>519

541 名前:
回答ありがとうございます。

SevenZipExtractorですが、プロジェクトにNugetで取り込んでも正常に認識してくれず使えませんでした。
SharpCompressですが、(まだファイルの一覧だけしか試していませんが)RAR5での圧縮ファイルを扱えました。
SharpCompressは前に使っていたことがあるので(当時はRAR5が使えなかった)、こちらを使おうと思います。
[]
[ここ壊れてます]

542 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 17:04:13.00 ID:CPjaAgWSM.net]
vs2013なんですけど、バーコードを作るメジャーな方法って何があるでしょうか?無料がいいです。

543 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 17:23:07.87 ID:jB1piIf60.net]
無料ならGPLv3でもええんか

544 名前:デフォルトの名無しさん [2019/02/05(火) 17:28:38.13 ID:dQJUt0gZF.net]
ライブラリいっぱいあるで

545 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 18:20:58.39 ID:C5l7MRqld.net]
>>525
メジャーなのはZXing



546 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 21:05:22.94 ID:XsUhL+1b0.net]
何かライブラリ無いかなと思ったらまずNuGet見てみる

547 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 12:34:37.03 ID:ymLQaaTBd.net]
C#で書いたコードをVBAから呼び出す際のC#でのやり方を教えてください。

例えば、MessageBoxで「Hello!」と表示するには何をどうすれば出来ますか?
使ってるのはVisualStudio2017です。

548 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 12:38:03.13 ID:ymLQaaTBd.net]
>>530
引数でHelloを持ちかえる方法です。

549 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 13:05:34.43 ID:pq3DhSMgM.net]
日本語でOK!

550 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 13:11:17.81 ID:/72vyC150.net]
>>530
ググレカス

C#で実装したコードをVBAとかVBから使う方法 : 実験ぶろぐ(仮)試供品
https://needtec.exblog.jp/21522702/

551 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 16:15:23.61 ID:sqv9vum40.net]
https://gist.github.com/katabamisan/5231237

上記サイトのIniFileクラスでBufferExpandingSizeを小さくしてから
GetSectionNamesを呼び出すとループ2回目のGetPrivateProfileString呼び出しのタイミングで
例外も発生せずにプログラムが異常終了してしまうのですが何が問題なんでしょうか?

552 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 18:20:24.61 ID:ymLQaaTBd.net]
>>533
書いてるコードの意味がよくわからないので単純なコードが知りたいんです。

553 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 18:30:37.80 ID:1DcU3Gnhp.net]
コードコピペして自分の使ってるクラスに直せば出来ると思うけど
インターフェース作ってなければクラスから作って置き換えればサンプルコード通りに動くはず

554 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 18:54:31.06 ID:cXGNS95ra.net]
>>535
C# メインルーチンからメッセージボックスを表示
VBA shellを使って↑を起動

555 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 21:20:24.24 ID:SSakxrcH0.net]
>>534
GetPrivateProfileStringの定義がCharSet.Unicode指定してるから
第5引数のnSizeはwchar_tの個数を指すことになる
wchar_tは2バイトだからnSizeに16指定したらlpReturnedStringは32バイトあることになる
でも実際にはその半分の16バイトしか確保してないから
GetPrivateProfileStringが17バイト目以降に書き込もうとしてヒープ破損する



556 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 10:39:20.42 ID:BTY8+ybz0.net]
>>538
文字セットのことがすっかり頭から抜けてました
WinAPIを使うなら真っ先に気を付けないといけない部分なのになあ

・ReAllocCoTaskMemで確保するサイズをlength*2に

557 名前:変更
・GetPrivateStringのCharSetをAnsiに変更、文字列への変換をPtrToStringAnsiに変更

上記2通りの修正でどちらも正常動作することが確認できました
回答ありがとうございました
[]
[ここ壊れてます]

558 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 18:21:29.96 ID:yK9ubdQXd.net]
VS2017使用。
ADOを使ってエクセルのシート名を読んだりセルのデータを読み取りたい。
対象エクセルブックは〇〇.xlsのみ

ネットのサンプルコードをコピペして使ってもエラーでさっぱりです。
何かインストールが必要なんですか?それとも参照設定とか必要なんですかね?

なんか雛形のコードでもあればいただけませんか?

559 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 19:01:48.27 ID:l2uiBAtS0.net]
具体的にどのサイトのコードを試したら
どんなエラーメッセージが出たのかを書いてくれ

560 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 19:28:54.09 ID:yK9ubdQXd.net]
https://qiita.com/OneK/items/c3077aea595635f40ee5
このサイトの下のコードです。

adp.Fill(dt);←ここでエラーです。

return dt;
}

今パソコンから離れたのでエラー内容は忘れましたが何かがないぞみたいな感じでした。

561 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 20:24:29.71 ID:3NiqE0/P0.net]
>>540
https://csharp.keicode.com/topics/how-to-use-exceldatareader.php
これじゃあかんの?

562 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 21:34:46.19 ID:FLUWNW3J0.net]
>>543
これも明日試してみます。
でもいろいろとコードの引き出しがあったらいいなって

563 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 21:37:56.26 ID:FLUWNW3J0.net]
>>543
速度はどうなんですか?早いですか?

564 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 22:02:28.76 ID:O0GaOve00.net]
>>545
ウゼェ、やる気がねーなら
エロゲでもやってろ

565 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 22:23:39.18 ID:iyj2o48P0.net]
こんばんはよければ教えてください
c#で社内用のソフトをしこしこ作っているものなのですが、同じ境遇の方ヘルプファイルはどの形式で
作っていますか? chmファイルは今時便利なツールもないので作りにくいのですが、pdfではなんか味気ない

今回新たなソフトを社内でリリースするので悩んでいます。

あ、ちっちゃい会社です。



566 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 22:28:55.73 ID:CKGjxJfq0.net]
もしかしてc#全く関係ない話?

567 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 22:35:04.98 ID:VZhzokSX0.net]
> pdfではなんか味気ない

その謎の価値観を改めればすべて解決です

568 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 23:39:26.83 ID:Q7Nq6LQdd.net]
>>547
sandcastleでchmやHTMLのヘルプを簡単に生成できるよ

569 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 23:40:23.99 ID:Q7Nq6LQdd.net]
>>548
C#のコメントからヘルプを生成する話だよ

570 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 23:47:55.01 ID:O0GaOve00.net]
doxygen的なのって新しいの出た?

571 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 00:00:34.72 ID:JeOi55qM0.net]
sandcastleなつかしい

572 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 00:09:17.11 ID:yxq5pHtX0.net]
>>553
今でもメンテしてる人いるし!
https://github.com/EWSoftware/SHFB

573 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 00:42:26.66 ID:zMW+eOHy0.net]
markdownで書いてhtml出力

574 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 00:59:36.44 ID:wLiZux8Md.net]
>>555
ソースコードから生成しないのは非効率でしょ

575 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 01:02:48.69 ID:kZW3St4e0.net]
ソースコードから設計書出すならわかるけど、今回の質問はヘルプファイルでしょ?



576 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 01:18:59.44 ID:e7pcoQvna.net]
社内ならConfluenceみたいなwiki的なサービス使えば?
ファイルで配ると後でメンテに苦労することになるよ

577 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 01:22:13.31 ID:yxq5pHtX0.net]
>>557
C#のスレなんだからヘルプと言えばクラスリファレンスだろ






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

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

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